0

この mysql クエリに問題があります。

select * from tb1 as a 
 where (select count(*) from tb2 as b 
         where Match(b.column1) against(`a.id`) )  = '1'

Mysqlには次のエラーがあります:

1054 - 'where 句' の不明な列 'a.id'

だから私は tb1 のすべてのエントリを取得したいと思います.tb2 のエントリ数は a.id が 'column1' 列の中にあります.

私の目的を理解していただければ幸いです。それ以外の場合はお気軽にお問い合わせください。

4

2 に答える 2

0

問題がデータ範囲にあることはほぼ確実です。サブクエリを使用しますが、このサブクエリには「a」に関する情報がありません。サブクエリからのデータをメインクエリで使用できますが、逆には使用できません。そのようなことを試してください(テストできないため、クエリが機能することを保証できません):

SELECT a.*, b.count(*) FROM tb1 AS a 
LEFT JOIN tb2 AS b ON Match(b.column1) against(a.id)
HAVING b.count(*) = 1
于 2013-09-12T09:33:26.050 に答える
0

テーブル名は引用符の外側にある必要があります。「a.id」は、table.column のペアではなく、列名 (もちろん存在しません) として処理されるようになりました。

against(a.`id`) 
于 2013-09-12T09:07:51.630 に答える