2016-07-25 99 views
1

我试图连接两个SQL表中的一行SQL连接 - 结果单列

表1

id  | num | value  (Values can be 'N' number) 
------ | ------ | ------ 
X  | 1  | ZA 
X  | 2  | Z1 

表2

id  | num | num2 
------ | ------ | ------ 
X  | 1  | 2 

Joing表得到的结果1和表2

我得到了:

id  | num | value | num | value 
------ | ------ | ------ | ------ | ------ 
X  | 1  | ZA  | 2  | null 
X  | 1  | null | 2  | Z1 

预期结果:

id  | num | value | num | value 
------ | ------ | ------ | ------ | ------ 
X  | 1  | ZA  | 2  | Z1 

我怎么能这样做?

+3

您需要详细说明一下,并提供您的查询。 – scsimon

+0

你应该使用聚合和GROUP BY,但对于@ scsimon的观点,你没有提供足够的细节来告诉你如何。折叠不同值的规则有哪些,哪些先例等? –

回答

2
Select t1.id, t1a.num, t1a.value, t1b.num, t1b.value 
from table2 t2 
left join table1 t1a on t2.num = t1a.num 
left join table1 t1b on t2.num2 = t1b.num 
+1

我会在'id'列上加上相等的;这似乎是对问题的合理解释。 –

+0

感谢您的回答Hogan :) – NewKid