少し助けが必要です。なぜこれを理解できないのかわかりません。
曲、ジャンル、および 2 つの間の関連付けのテーブルがあります。
SONGS
song_id
song_name
active (0,1)
GENRE
genre_id
genre_name (rock,jazz,classical,newage,opera)
ASSOC
song_id
genre_id
このような簡単な検索を行うことができます...
SELECT s.song_name, s.song_id
FROM (songs s)
LEFT JOIN assoc a ON s.song_id = a.song_id
WHERE s.active = 1
AND a.genre_id = 1
と、こんな感じでマルチ検索。
SELECT s.song_name, s.song_id
FROM (songs s)
LEFT JOIN assoc a ON s.song_id = a.song_id
WHERE s.active = 1
AND (a.genre_id = 1
OR a.genre_id = 2)
しかし、1 と 2 または 3 を取得したい場合はどうすればよいでしょうか。これは動作しません。
SELECT s.song_name, s.song_id
FROM (songs s)
LEFT JOIN assoc a ON s.song_id = a.song_id
WHERE s.active = 1
AND a.genre_id = 1
AND (a.genre_id = 2
OR a.genre_id = 3)
助けてくれてありがとう。私はこれを間違った方法で見ているだけだと感じています。