2011-06-26 46 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檢查