我的MySQL数据库中有三个表:books
,authors
和cities
。
books
包含以下列:id
,author_id
authors
包含以下列:id
,author
,city_id
cities
包含以下列:id
,city
运行
SELECT *, books.id, authors.author FROM books LEFT JOIN authors ON books.author_id = authors.id WHERE MATCH (authors.author) AGAINST ("peter" IN BOOLEAN MODE);
通过phpMyAdmin中的SQL选项卡一切正常。
但是另外选择LEFT JOIN
SELECT *, books.id, authors.author, cities.city FROM books LEFT JOIN authors ON books.author_id = authors.id LEFT JOIN cities ON authors.city_id = cities.id WHERE MATCH (authors.author, cities.city) AGAINST ("peter" IN BOOLEAN MODE);
我收到错误消息
MySQL说:文档
#1210 - MATCH的参数不正确
我做了很多测试,似乎MATCH AGAINST
不适用于两个LEFT JOIN
。但我在互联网上找不到任何东西。我还尝试使用JOIN
代替LEFT JOIN
,但没有成功。
所有列肯定存在。
知道我能做什么吗?
如果需要更多信息,请询问。
答案 0 :(得分:0)
我找到了解决方案:列cities
为InnoDB
,而不是MyISAM
,因为其他表格都是。