3つのテーブルがあるとします。
articles(id,id_cat)
categories(id)
messages(id,id_cat,id_article)
..どこarticles
に関連していて、またはに関連しcategories
てmessages
いる可能性があります(ユーザーはカテゴリまたは記事にメッセージを投稿できます)articles
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なしでこれを行う方法はありますか?