2011-01-23 5 views
1

は、私は3つのテーブル持って考えてみましょう登録しよう:ヘルプ

  • 映画(映画1、動画2、など)
  • カテゴリー(アクション、サスペンス、など)
  • Movies_Categoriesを(映画1 - >アクション、ムービー1 - >サスペンス、ムービー2 - >サスペンスなど)

1つのクエリのみを使用して、特定のカテゴリに属していたり​​、属していないムービーだけを選択できますか?

ありがとうございます!

答えて

1

属し:

SELECT m.* 
     FROM movies m 
INNER JOIN movies_categories mc 
     ON m.id = mc.movie_id 
INNER JOIN categories c 
     ON c.id = mc.category_id 
     AND c.name = 'action'; 

は属していません:

0
SELECT m.*, 
      IF(mc.movie_id IS NULL, 'doesnt belong', 'belongs') 
     FROM Movies m 
LEFT JOIN Movies_Categories mc ON mc.movie_id = m.id 
           AND mc.category_id = (SELECT id 
                 FROM categories 
                 WHERE name = 'action')