2012-05-30 5 views
0

Возможно ли совпадение с запросом с двумя таблицами с помощью объединения? Трудная часть может быть индексом на столе, но, возможно, есть способ ... SQL не мой сильный костюм. Большое спасибо. Я предполагаю, что это может быть что-то вроде следующего:MYSQL соответствует запросу двух таблиц

SELECT * FROM 'pages' p 
LEFT JOIN `tags` t 
ON p.id = u.pageid 
WHERE MATCH(p.shdescript,t.tag) AGAINST ('romance, relationship') 

Большое спасибо

+0

возможно дубликат [MySQL полнотекстового поиска по нескольким таблицам] (http://stackoverflow.com/questions/1117005/mysql-full-text-search-across-multiple-tables) – eggyal

+0

На самом деле, [этот ответ] (http://stackoverflow.com/a/9951200/623041) на другой вопрос, возможно, более полезен. – eggyal

+0

Из этих двух вопросов я получаю, что вы не можете использовать join, но должны использовать union. Вы знаете, правильно ли это? – user1260310

ответ

2

Это возможно, но вы должны иметь текстовые индексы.

mysql> alter table pages add fulltext index_text(shdescript); 

mysql> alter table tags add fulltext index_text(tag); 

SELECT * FROM 'pages' p 
LEFT JOIN `tags` t 
ON p.id = u.pageid 
WHERE MATCH(p.shdescript,t.tag) AGAINST ('romance relationship') 

Я думаю, этого достаточно, чтобы работать.

EDIT:

По состоянию на MySQL 5.6 выше полнотекстовый поиск может быть сделано на двигателях хранения InnoDB MyISAM &. В более ранних версиях MySQL только таблицы MyISAM поддерживали полнотекстовые индексы.

http://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html

Смежные вопросы