繁体   English   中英

我该如何从ID不在列中的LEFT JOIN上的MYSQL表中选择所有记录?

[英]How do I select all records from MYSQL table on with a LEFT JOIN where id not in column?

我有一个表,我只想从中选择记录ID,而该记录ID在另一个表中不存在。

这是我的桌子:

staff表:

在此处输入图片说明

和我的staff_to_assessors

在此处输入图片说明

我想做的是从users表中选择id在staff_to_assessors表中不存在的所有记录。

到目前为止,我有:

SELECT * FROM users u 
LEFT JOIN staff_to_assessors s2a 
ON u.id = s2a.staff_id WHERE u.id NOT IN... 

我被困在最后一刻! 有人可以帮忙吗

如果找不到左联接的匹配项,您将收到一个空的staff_id。

SELECT * FROM users u 
LEFT JOIN staff_to_assessors s2a ON u.id = s2a.staff_id 
WHERE s2a.staff_id IS NULL

要么

SELECT * FROM users u 
WHERE u.id NOT IN(SELECT staff_id FROM staff_to_assessors)

检查评估者表上的空ID:

SELECT * FROM users u LEFT JOIN staff_to_assessors s2a 
ON u.id = s2a.staff_id 
WHERE s2a.staff_id is null 

就像@ UrGuardian4ngel所说的一样,但这是整个查询

SELECT
    *
FROM
    `users`
WHERE
    `users`.`id` NOT IN (
        SELECT
            `staff_to_assessors`.`staff_id`
        FROM
            `staff_to_assessors`
    )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM