我想从两个表中获取值,如下例所示:
假设我们有两个表:
TableA(带有表b的链接):
Id | Id_TableB | Name
---------------------
1 | 1 | Ralf
2 | NULL | Marta
表B:
Id | Color
---------------------
1 | Blue
2 | Red
如果有链接,我想获取Color的值,否则为NULL:
结果:
Id | Name | Color
-----------------------------
1 | Ralf| Blue
2 | Marta| NULL
关于如何解决这个问题的任何想法?
答案 0 :(得分:5)
您需要left outer join。
SELECT t1.Id, t1.Name, t2.Color
from TableA t1 left outer join TableB t2
on t1.Id_TableB = t2.Id;
请检查我上面提供的链接。它是一个简化的教程
答案 1 :(得分:1)
您需要使用LEFT OUTER JOIN,即使存在NULL,也包括行。像这样:
SELECT *
FROM TableA a
LEFT OUTER JOIN TableB b on a.ID_TableB = b.ID
更多信息:
http://msdn.microsoft.com/en-us/library/ms187518.aspx
希望这有帮助,
约翰
答案 2 :(得分:1)
select
a.Id,
a.Name,
b.Color
from
a
left outer join
b
on
a.Id_TableB = b.Id
group by
b.Id
如果你有一对多的关系a-> b,那么group by b.Id
是必要的。
答案 3 :(得分:-1)
只需要使用外连接....
select a.id,a.Name, b.Color from tableB as b
left join tableA as a on b.Id = a.id_tableB
为此您也可以在条件中使用 你可以尝试下面的查询 -
select a.id,a.Name, b.Color from tableB as b,tableA as a on b.Id(+) = a.id_tableB