2017-03-04 6 views
-1

ここではSQLには問題がありません。複数のSQLを持つテキスト

私はそれが当然の作品だけを使用する場合には、nullを返します2つのジャンル

SELECT v.explanation 
FROM v, g 
WHERE 
    g.Video_ID = v.Video_ID AND 
    g.Explanation= "Genre1" AND 
    g.Explanation= "Genre2"; 

を持っている映画を見つける必要があります。

答えて

1

まず、常に明示的なJOIN構文を使用してください。 は、FROM句にカンマを使用します。

その後、あなたはGROUP BYHAVINGを使用して、あなたの問題を解決することができます:

SELECT v.Bezeichnung 
FROM video v JOIN 
    hat_genre g 
    ON g.Video_ID = v.Video_ID 
WHERE g.Bezeichnung IN ('Horror', 'Thriller') 
GROUP BY v.Bezeichnung 
HAVING COUNT(DISTINCT g.Bezeichnung) = 2; 

追加メモ:

  • 表の別名を書くことや読むことをクエリが容易になります。
  • 文字列のANSI標準SQL区切り記号は一重引用符です。これは他の意味を持つことができる二重引用符よりも好ましい。
  • INは、複数の値をテストする最も効率的な方法です。
関連する問題