Поиск по 2 таблицам в MySQL с разными столбцами, попытка левого соединения - ошибка синтаксиса? - PullRequest
1 голос
/ 26 мая 2011

Вот мое утверждение (я получаю синтаксическую ошибку);

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.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')

Спасибо за тонну!

1 Ответ

1 голос
/ 26 мая 2011

В первом запросе, как упоминает Марк Б, МАТЧ находится не в том месте. Во втором, похоже, что вы используете 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...