2012-05-30 45 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

从这两个问题,我得到你不能使用连接,但必须使用联合。你知道这是对的吗? – 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') 

我想这足以工作。

编辑:

在MySQL 5.6以上全文搜索可以在MyISAM数据& InnoDB存储引擎来实现。在早期的MySQL版本中,只有MyISAM表支持全文索引。

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