假设你有 3 张桌子..
articles(id,id_cat)
categories(id)
messages(id,id_cat,id_article)
..where与 orarticles
相关categories
并且messages
可以与articles
or相关categories
(用户可以在类别或文章中发布消息)
在假设的当前类别中id=55
,我可以执行哪个查询来列出在当前类别和属于当前类别的文章中发布的所有消息?
-- 联合解决方案 --
Poodlehat 建议使用 UNION,对于这个特定问题,它是:
SELECT * FROM (
(SELECT m.id FROM messages AS m INNER JOIN categories AS c ON c.id=m.id_cat
WHERE m.id_cat=55)
UNION
(SELECT m.id FROM messages AS m INNER JOIN articles AS a ON a.id=m.id_article
WHERE a.id_cat=55)
) AS foo
----
现在,没有 UNION有没有办法做到这一点?