SQL选择其中一个参数等于另一张表中的另一个参数

问题描述 投票:0回答:1

因此,我对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
sql join jointable
1个回答
1
投票

这应该可以得到您想要的。注意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 
© www.soinside.com 2019 - 2024. All rights reserved.