一列中的值与另一列中的值相同

时间:2014-02-17 13:35:52

标签: sql

我有一个表格,我关注两个列,即orderNumber和productCode。 该表配置为

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

我需要找到所有订单共有的productCode。我该如何完成这项任务?

1 个答案:

答案 0 :(得分: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