Mysql匹配未知列

时间:2013-09-12 06:18:19

标签: mysql sql match against

我的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.

我希望你理解我的目的,否则随便问。

2 个答案:

答案 0 :(得分:0)

表名应该在引号之外,“a.id”现在作为列名处理(当然不存在),而不是table.column对:

against(a.`id`) 

答案 1 :(得分: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