* forum
forum_id
forum_subject
forum_description
* forum_message
forum_message_id
forum_id
forum_message_description
我正在寻找一个通过关键词搜索,它将在forum_subject和forum_message_description上搜索
我想出了明显的方法:
SELECT forum_subject, forum_description, forum_id FROM forum WHERE forum_subject LIKE '%keyword%'
但是我似乎无法弄清楚如何在forum_message上的同一查询上进行搜索,并仅从论坛表中返回信息……也许是子选择项?
谢谢你的帮助
您正在寻找的是FULL OUTER JOIN,但是可悲的是,MySQL不直接支持这种命令。但是,可以使用UNION对其进行仿真。
SELECT forum.forum_id,forum.forum_subject,forum.forum_description
FROM forum
WHERE forum.subject LIKE '%keyword%'
UNION
SELECT forum.forum_id,forum.forum_subject,forum.forum_description
FROM forum
INNER JOIN forum_message ON forum_message.forum_message_id = forum.id
WHERE forum_message.forum_message_description LIKE '%keyword%'
第一个查询将从论坛表中返回您的结果,并按主题列进行过滤。第二个查询也将返回来自论坛表的结果,但将由来自forum_message表中具有与您的关键字相似的forum_message_description的匹配行过滤。UNION命令合并两个查询中的行并删除重复项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句