0

かなり単純なネストされたクエリのように見えるものを構築しようとしていますが、次の 2 つの機能するクエリを組み合わせると、次のエラーが発生します。

フィールド リスト ErrorNr の不明なテーブル '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` ));

これに関するアイデアは非常に高く評価されます。

4

1 に答える 1

2

テーブルを参照していますが、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`;
于 2013-06-21T23:32:52.000 に答える