我的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.
我希望你理解我的目的,否则随便问。
答案 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