SELECt ID, TYPE FROM types NATURAL JOIN (
SELECt ID FROM types GROUP BY ID HAVINg SUM(COLOR=’Red’) AND SUM(COLOR=’Blue’)
) t WHERe COLOR IN (‘Red’, ‘Blue’)
在sqlfiddle上看到它。
另外,如果您很乐意将类型连接成一个定界的字符串,则可以通过一次传递来提取所需的数据:
SELECt ID, GROUP_CONCAt(TYPE)FROM typesWHERe COLOR IN ('Red', 'Blue')GROUP BY IDHAVINg COUNT(*) = 2在sqlfiddle上看到它。
请注意,如果您的表可能包含多个具有相同
(ID, COLOR)对的记录,则应替换
COUNT(*)为更昂贵的
COUNT(DISTINCTCOLOR)。



