加入两个表,忽略第一个表中的记录(如果存在于第二个表中)

时间:2011-01-21 18:54:47

标签: sql-server join

如果我更喜欢只从第二张表中获取记录,如何加入表格?如果不存在秒,请记录第一个表。

Table A         Table B         Result
pid,name,type   pid,name,type   pid,name,type
1,Anna,null     1,Anna,100      "1,Anna,100"
2,Bea,null      -               "2,Bea,Null"
3,Caro,null     3,Caro,100      "3,Caro,100"    
                3,Caro,200      "3,Caro,200"

编辑:我试图改进我的示例表。

2 个答案:

答案 0 :(得分:5)

SELECT
   ISNULL(A.column1, B.column1),  --perhaps name
   ISNULL(A.column2, B.column2)  --perhaps id
FROM
   TableA A
   FULL OUTER JOIN
   TableB B ON A.column1 = B.column1  --assume name is matching column

编辑,我假设你在tableA中没有行,而在表B中没有“Dave,6”。否则,Cyber​​nate的左连接就足够了

答案 1 :(得分:3)

您可以使用Left Join,我假设TableB的列名分别是Name和ID。

SELECT tableA.Name, tableB.Id
  FROM tableA LEFT JOIN tableB
    ON tableA.Name = tableB.Name