我有两个表,第一个表包含id和employee_name,第二个表包含employee_id(与id相同)和其他一些列。如何将第一个表与第二个表连接在一起,以便可以输出第一个表中没有出现的所有雇员ID(以及其余列)?我要查询的是:
select employee_id
from data2 left join data1 on data2.employee_id = data1.id
where employee_id is NULL
这将输出正确的行数,但是其中没有值。任何帮助将不胜感激!
答案 0 :(得分:3)
您的表在您的SQL中被翻转。根据您的叙述,SQL应该是:
brew services start postgresql
答案 1 :(得分:0)
您无需使用连接,只需使用'not in'子句
select id
from table1
where id not in (select employee_id from table2)
如果有效,请告诉我。
答案 2 :(得分:0)
如果我正确理解了您的问题,那么您想从data1
的{{1}}列中的employee_id
值中不存在id
的记录。
以当前查询的结构方式,您要求输入data2
,以便仅返回空记录。而是像这样查询employee_id ... where employee_id is NULL
:
data1
这使用子查询在select * from data1 where employee_id not in
(select id from data2)
中找到id
值的列表,然后仅返回data2
的{{1}}在该列表中的记录。