在带有不同列的MySQL中搜索2个表,尝试左连接-获取语法错误?

问题描述

| 以下是我的声明(即出现语法错误);
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
基本上,我有2个表,一个表具有上载(并且我需要搜索标题,描述和文件路径),第二个表也具有我也需要搜索标题的所有课程。 我正在尝试使用以上字段和标题字段中的课程表对上载表进行全文搜索。 我尝试了以下其他查询,但无济于事;
SELECT *,MATCH( U.title,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在错误的位置。在第二个例子中,您应该使用AND时,您似乎在LEFT JOIN中使用了WHERE,即:
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\')