查询将结果与相同值+额外列合并

时间:2014-05-14 13:55:12

标签: sql sql-server

所以我只是想知道如何获得两个表的合并列表, 一个包含所有必需的行,第二个包含与第一个相关联的额外数据。 enter image description here

因此,对于表1和表2,我想得到3,这可以作为查询完成吗?

3 个答案:

答案 0 :(得分:0)

所以如果"空"来自table2的列中的值只能为NULL,您可以执行LEFT JOIN

select 
t1.col1, --this is A, B, C
t1.col2, 
t1.col3, 
t2.col4 -- this is the fourth column
from Table1 t1
left join Table2 t2 on t1.Col1 = t2.Col1

请参阅SqlFiddle

如果您想确保仅在3列相同的情况下加入,只需向左连接添加条件

on t1.Col1 = t2.Col1 and t1.Col2 = t2.Col2 and t1.Col3 = t2.Col3

答案 1 :(得分:0)

使用存在

SELECT T1.Column1, T1.Column2, T2.Column3
FROM T1, T2
WHERE T1.Column1 IN
  (SELECT Column1 FROM T1);

答案 2 :(得分:0)

您也可以尝试使用相同的结果

SELECT T1.Column1, T1.Column2, T2.Column3
FROM T1 LEFT JOIN T2 ON T1.Column1 = T2.Column1