SQL选择其中一个参数等于另一个表中的另一个参数
我对SQL表联接非常陌生,需要一些帮助 我有两张桌子,没有。一张看起来像这样(让我们称之为桌子A): 另一个看起来像这样(称为TableB): 我想加入这些表,以便根据“Kuldo_felh_id”获得登录名,并保留整个表的内容 因此,我编写了以下SQL查询命令:SQL选择其中一个参数等于另一个表中的另一个参数,sql,join,jointable,Sql,Join,Jointable,我对SQL表联接非常陌生,需要一些帮助 我有两张桌子,没有。一张看起来像这样(让我们称之为桌子A): 另一个看起来像这样(称为TableB): 我想加入这些表,以便根据“Kuldo_felh_id”获得登录名,并保留整个表的内容 因此,我编写了以下SQL查询命令: SELECT a.*, b.login_nev FROM TableA a, TableB b WHERE fogado_felh_id = 35 AND b.id = a.kuldo_felh
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 somebody@emailhere.com
35 38 SomeUserName
问题在于,此命令不会返回kuldo_felh_id为null或该id在TableB中不存在的行。如果TableB中不存在tableA内容,如何返回该内容
这是我希望看到的输出:
Fogado_felh_id Kuldo_felh_id Login_name
--------------------------------------------------------
35 33 somebody@emailhere.com
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
这应该得到你想要的。注意
左连接
语法。在关键字中包含,以指定连接这两个表的内容。一旦开始使用别名,请为所有查询列使用别名
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
这应该得到你想要的。注意左连接
语法。在
关键字中包含,以指定连接这两个表的内容。一旦开始使用别名,请为所有查询列使用别名
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
使用左连接
。不要使用旧式联接表a、表B
使用左联接
。不要使用旧式连接表a、表B
谢谢,你是救命恩人!谢谢,你是救命恩人!
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