根据表B中另一个column2的唯一值从表A中选择column1

时间:2018-10-10 00:42:57

标签: sql

我有表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”

1 个答案:

答案 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