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”列内的条目数为 1。

我希望您了解我的目的,否则请随时提问。

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 回答