我想编写一个查询来搜索多个表(新闻,文章,项目,文件)
搜索时我发现了这个
SELECT title, post FROM news WHERE MATCH (title,post) AGAINST ('press');
我测试了它并且它正在工作,但我没有将它扩展到多个表。
如何编写一个返回多个表的搜索结果的查询?
答案 0 :(得分:0)
这是一种方法。我不确定Match会做什么,但是你可以在哪里使用你的匹配功能
Select Table1.Title, Table2.Post FROM Table1, Table2 WHERE Table1.Title = 'press' AND Table2.Title = 'press'
此查询将为您提供两个已按下的表格的标题和帖子。
答案 1 :(得分:0)
一种方法是使用union
:
SELECT title, post FROM news WHERE MATCH (title,post) AGAINST ('press')
UNION
SELECT title, post FROM articles WHERE MATCH (title,post) AGAINST ('press')
UNION
SELECT title, post FROM projects WHERE MATCH (title,post) AGAINST ('press')
UNION
SELECT title, post FROM files WHERE MATCH (title,post) AGAINST ('press')
现在这实际上变成了一个伪表,所有记录都合并到一个数据集中。
答案 2 :(得分:0)
查看此查询,您可以像这样使用 -
SELECT *
FROM news t1, articles t2, projects t3, files t4 WHERE MATCH ( t1.title, t1.post)
AGAINST ('press') or Match(t2.title,t2.post) AGAINST('press')
并在MATCH()函数中设置要搜索的所有列。
你可以尝试这个,它可能对你有帮助。