下面是我的语句(我得到一个语法错误);
SELECT * FROM uploads AS U MATCH(U.title, U.description, U.filepath) AGAINST('ACTG 4160 -
Advanced Financial Accounting new search' IN NATURAL LANGUAGE MODE) LEFT JOIN courses AS C
ON U.Course_id = C.Id
基本上,我有两个表,一个表有上传(我需要搜索它们的标题、描述和文件路径),第二个表有我也需要搜索它们标题的所有课程。
我正试图在上传表上用上面的字段和标题字段上的课程表进行全文搜索。
我尝试了以下其他查询,但没有成功;
SELECT *, MATCH( U.title, U.description, U.filepath) AGAINST('ARTH 5180B asdfdsaf')
FROM uploads AS U LEFT JOIN courses AS C ON U.Course_id = C.Id WHERE MATCH(C.title)
AGAINST('ARTH 5180B asdfdsaf')
非常感谢!
正如Marc B所提到的,在第一个查询中,MATCH位于错误的位置。在第二个例子中,看起来你在LEFT JOIN中使用了一个WHERE,而你应该使用AND,即:
SELECT *, MATCH( U.title, U.description, U.filepath) AGAINST('ARTH 5180B asdfdsaf')
FROM uploads AS U LEFT JOIN courses AS C
ON U.Course_id = C.Id
AND MATCH(C.title) AGAINST('ARTH 5180B asdfdsaf')