我正在尝试从此表中选择使用完全相同语言(法语,意大利语和俄语)的人。它显然应该只返回Maja:
PERSON LANG
---------- ----------
Ann English
Ann Japanese
Bill English
Bill Japanese
Bill Russian
Chris English
Chris Russian
David English
David Japanese
David Russian
Ernie English
Ernie French
Ernie Japanese
Fumie Japanese
Fumie Korean
Maja French
Maja Italian
Maja Russian
我可以理解的代码不起作用,因为名称是重复的,并且此查询返回0结果:
SELECT DISTINCT PERSON
FROM SPEAKS
WHERE LANG = 'French'
AND LANG = 'Russian'
AND LANG = 'Italian';
对此的任何帮助都将非常感激,因为我无法弄清楚如何处理这些重复的名称。
答案 0 :(得分:2)
试试这个:
SELECT PERSON
FROM SPEAKS
WHERE LANG IN( 'French', 'Russian', 'Italian')
GROUP BY PERSON
HAVING COUNT(DISTINCT LANG) = 3
DISTINCT
内的COUNT
仅在您可以有重复项时才需要,即与一个人有多次相同的语言。