我有数据库。我想看有英语和西班牙语字幕的电影。我想这样做sql查询,但它不起作用。
SELECT name,language FROM DvD
JOIN Subtitles ON Dvd.dvdID=Subtitle.dvdID
where language='EN' and language='ES';
但当我试着这样做的时候,它起作用了。
SELECT name,language FROM DvD
JOIN Subtitles ON Dvd.dvdID=Subtitle.dvdID
where language='EN' or language='ES';
如果您想要同时具有以下两种功能的DVD,则实际上需要聚合:
SELECT dvd.name
FROM DvD JOIN
Subtitles s
ON Dvd.dvdID = s.dvdID
WHERE s.language IN ('EN', 'ES')
GROUP BY dvd.name
HAVING COUNT(*) = 2; -- both are present!
您的版本是返回的DVD要么有英语,要么有西班牙语,但不一定都有。