我有表A和表B,需要根据表B中另一列的唯一值从表A中选择一列
表A
id | product |
1 | A |
1 | B |
1 | A |
2 | A |
3 | B |
4 | A |
表B
id | product | date
1 | A | 1/01/2017
1 | B | 1/02/2017
1 | A | 1/01/2017
2 | A | 1/01/2017
3 | B | 1/02/2017
4 | A | 1/01/2017
我希望输出为:2,3,4
即表B的“日期”列中具有唯一值的所有“ id”
答案 0 :(得分:0)
根据表中的实际限制,有两种选择。
选项1-假设例如ID = 1,产品= A,日期= 1/01/2017,ID = 1,产品= B,日期= 1/01/2017,则意味着ID = 1 IS不不包含在您的最终结果中,因为它有2个日期= 1/01/2017,即使它们用于不同的产品
executionContext
选项2-假设例如ID = 1,产品= A,日期= 1/01/2017,ID = 1,产品= B,日期= 1/01/2017,则意味着ID = 1 IS 包含在最终结果中,因为每个ID /产品组合只有一个日期
SELECT a.ID
FROM
(
SELECT ID, COUNT(*)
FROM TableB
GROUP BY ID
HAVING COUNT(*) = 1
) a