SQL select 其中一个参数等于另一个 table
SQL select where one parameter equals to another one in another table
我是 SQL table 加入的新手,我需要一些帮助。
我有两个 table,没有。一个看起来像这样(我们称之为 TableA):
Fogado_felh_id Kuldo_felh_id
-------------------------------
35 33
35 38
35 NULL
35 39
另一个看起来像这样(并称之为 TableB):
id Login_name
---------------------------------------
33 somebody@emailhere.com
38 SomeUserName
我想加入这些 table 以便我根据 '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;
它return是这样的:
Fogado_felh_id Kuldo_felh_id Login_name
-----------------------------------------------------------
35 33 somebody@emailhere.com
35 38 SomeUserName
问题是此命令不会return kuldo_felh_id 为空或表B 中不存在id 的行。我如何才能return 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
这应该能满足您的需求。注意 LEFT JOIN
语法。包括 ON
关键字以指定连接 2 个表的内容。开始别名后,为所有查询列设置别名。
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
我是 SQL table 加入的新手,我需要一些帮助。
我有两个 table,没有。一个看起来像这样(我们称之为 TableA):
Fogado_felh_id Kuldo_felh_id
-------------------------------
35 33
35 38
35 NULL
35 39
另一个看起来像这样(并称之为 TableB):
id Login_name
---------------------------------------
33 somebody@emailhere.com
38 SomeUserName
我想加入这些 table 以便我根据 '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;
它return是这样的:
Fogado_felh_id Kuldo_felh_id Login_name
-----------------------------------------------------------
35 33 somebody@emailhere.com
35 38 SomeUserName
问题是此命令不会return kuldo_felh_id 为空或表B 中不存在id 的行。我如何才能return 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
这应该能满足您的需求。注意 LEFT JOIN
语法。包括 ON
关键字以指定连接 2 个表的内容。开始别名后,为所有查询列设置别名。
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