mysql - 字段列表中的未知表

标签 mysql sql

我正在尝试构建一个看似相当简单的嵌套查询,但是当我组合以下两个工作查询时,我收到以下错误:

字段列表中存在未知表“cm” 错误编号= 1109。

SELECT `cm`.`cans_id`   AS `cans_id`,
       `cm`.`cans_date` AS `cans_date`, 
       `cm`.`begintfin` AS `begIntFin`, 
       `c`.`cans_id`    AS `CAN_ID`, 
       `c`.`q001`       AS `q001`, 
       `c`.`q002`       AS `q002`, 
       `c`.`q093`       AS `q093`,
       `c`.`q094`       AS `q094`,
       `c`.`mru`        AS `mru2`,
       (SELECT Count(0) AS `count(*)`
        FROM   `cans2notes` `nt`
               JOIN `cans2meta` `cm`
                 ON `cm`.`cans_id` = `nt`.`cans_id`
               JOIN `cans2surveys` `c`
                 ON `c`.`cans_id` = `cm`.`cans_id`
        WHERE  ( `nt`.`cans_id` = `c`.`cans_id` ));

对此的任何想法将不胜感激。

最佳答案

您引用的是一个表,但没有 FROM 或 WHERE 子句。

基本上你已经

select col,
       col,
       col,
       col,
       (select count(*) from sometable)

但是你没有

 FROM table cm
 INNER JOIN table c
 ON CM.ID = C.OTHER_ID

我猜你想做的是:

SELECT `cm`.`cans_id`   AS `cans_id`,
       `cm`.`cans_date` AS `cans_date`, 
       `cm`.`begintfin` AS `begIntFin`, 
       `c`.`cans_id`    AS `CAN_ID`, 
       `c`.`q001`       AS `q001`, 
       `c`.`q002`       AS `q002`, 
       `c`.`q093`       AS `q093`,
       `c`.`q094`       AS `q094`,
       `c`.`mru`        AS `mru2`,
       `count(*)`       AS 'count'
        FROM   `cans2notes` `nt`
               JOIN `cans2meta` `cm`
                 ON `cm`.`cans_id` = `nt`.`cans_id`
               JOIN `cans2surveys` `c`
                 ON `c`.`cans_id` = `cm`.`cans_id`
        WHERE  ( `nt`.`cans_id` = `c`.`cans_id` )
        GROUP BY `cm`.`cans_id`,
       `cm`.`cans_date`, 
       `cm`.`begintfin`, 
       `c`.`cans_id`, 
       `c`.`q001`, 
       `c`.`q002`, 
       `c`.`q093`,
       `c`.`q094`,
       `c`.`mru`;

关于mysql - 字段列表中的未知表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17245730/

相关文章:

sql - 在 SQL Server SELECT 语句中使用 CASE 时消除 NULL

SQL Server 2008 比较两个不同的数据库表的列名、数据类型和长度

mysql - 使用全文索引和其他 where 条件进行高效查询

mysql - 在 MySQL Loopback Connector 上执行原始查询

c# - 无法将值 NULL 插入列 'EmpId'

C++:将 SQL 查询的结果集转换为 JSON

MySQL 查找给定字段的 MAX 并返回整行

sql - mysqldump 不创建表,然后尝试锁定/更改不存在的表

c# - 如何从选择查询中计算重复记录

sql - 从不相关的表中一次插入两个或多个值