加入两个表,忽略第一个表中的记录(如果存在于第二个表中)
问题描述:
如何连接到表,如果我更喜欢只从第二个表中获取记录?如果不存在第二个表,请记录第一个表。加入两个表,忽略第一个表中的记录(如果存在于第二个表中)
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"
编辑:我试图改进我的示例表。
答
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中,和 “戴维,6” TableB中。否则,Cybernate的左连接已经足够了
+0
不是很激动我需要什么,但是你把我放在正确的道路上。谢谢! –
答
你可以使用左连接,我假设TableB的列名分别是Name和ID。
SELECT tableA.Name, tableB.Id
FROM tableA LEFT JOIN tableB
ON tableA.Name = tableB.Name
这绝不是你想知道的。你的A和B的列是什么?在你的例子中,来自A的记录在什么意义上被忽略? –
你会在表A中使用Caro,而在tableB中没有行吗? – gbn
人员既可以是小组的成员,也可以是小组的成员。他们可能在一个组中拥有多个成员资格。现在,我需要一个与组关联的所有人的列表。但是,如果该人拥有多个成员资格,则同一个人只有多个。 –