2011-06-26 49 views
-3
CREATE TABLE table1(kid char(2),color varchar(9)); 

INSERT INTO table1('k1'.'yello'); 
INSERT INTO table1('k1'.'red'); 
INSERT INTO table1('k2'.'yello'); 
INSERT INTO table1('k2'.'blue'); 
INSERT INTO table1('k3'.'yello'); 

问:显示kid的表1有color值黄色和红色(他们都)?什么是下表的sql查询?

什么是sql查询?

+4

这个功课是? – driis

+0

yes123表示不是真正的问题 – dynamic

回答

0
SELECT kid 
    FROM table1 as t, 
     table1 as t2 
WHERE t1.color = 'yellow' 
    AND t1.kid = t2.kid 
    AND t2.color = 'red' 
1

用途:

SELECT t.kid 
    FROM TABLE1 t 
    WHERE t.color IN ('yellow', 'red') 
GROUP BY t.kid 
    HAVING COUNT(DISTINCT t.color) = 2 
  • IN条款将只得到记录其color值是黄色或红色
  • GROUP BY需要删除重复
  • COUNT(DISTINCT t.color) = 2确保有效kid值将被返回。如果没有DISTINCT,两个yellows/etc会满足COUNT检查