2014-02-17 152 views
0

我有一張表,其中涉及到兩列,即orderNumber和productCode。 在該表中這樣另一列中的值與一列中的值相同

orderNumber productCode 
1000    a 
1000    b 
1000    c 
1001    a 
1001    f  
1001    d  ... 

我需要找到共同所有訂單的產品代碼。我如何去做這個任務?

回答

1

的一種方式(SQL Fiddle

SELECT productCode 
FROM OrderProducts 
GROUP BY productCode 
HAVING COUNT(DISTINCT orderNumber) = (SELECT COUNT(DISTINCT orderNumber) 
             FROM OrderProducts) 

如果orderNumber,productCode保證獨一無二的,你有一個單獨的表中的所有訂單,然後

SELECT productCode 
FROM OrderProducts 
GROUP BY productCode 
HAVING COUNT(orderNumber) = (SELECT COUNT(*) FROM Orders) 

會更好。

查看Divided We Stand: The SQL of Relational Division的一些替代方法。

+0

謝謝! 您能否建議學習材料或共享空間查詢鏈接?我正在努力與MySQL服務器5.5的語法。 – user3316650

相關問題