因此,我对SQL表联接非常陌生,我需要一些帮助。我有两张桌子,没有。一个看起来像这样(我们叫这个TableA):
Fogado_felh_id Kuldo_felh_id
35 33
35 38
35 NULL
35 39
另外一个看起来像这样(并称为此TableB):
id Login_name
33 [email protected]
38 SomeUserName
我想加入这些表,以便获得基于'Kuldo_felh_id'的登录名,并保留整个TableA内容。所以我做了这个SQL查询命令:
SELECT a.*, b.login_nev from TableA a, TableB b where fogado_felh_id = 35 and b.id = a.kuldo_felh_id;
它返回此:
Fogado_felh_id Kuldo_felh_id Login_name
35 33 [email protected]
35 38 SomeUserName
问题是此命令不会返回kuldo_felh_id为null或TableB中不存在id的行。如何在TableB中不存在的地方返回tableA内容?
Ps:这是我希望看到的输出:
Fogado_felh_id Kuldo_felh_id Login_name
35 33 [email protected]
35 38 SomeUserName
35 NULL NULL //Because it does not exist the login_name should be null
35 39 NULL //Because it does not exist the login_name should be null
这应该可以得到您想要的。注意LEFT JOIN
语法。包括ON
关键字以指定将两个表联接在一起的内容。开始使用别名后,请为所有查询列添加别名。
SELECT a.*, b.login_nev
from TableA a
LEFT JOIN TableB b ON b.id = a.kuldo_felh_id
where a.fogado_felh_id = 35