0

我有一个表,我只想从中选择记录 id 不存在于另一个表中的记录。

这是我的表:

staff桌子:

在此处输入图像描述

和我的staff_to_assessors桌子

在此处输入图像描述

我想要做的是从用户表中选择表中不存在 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... 

我被困在最后一点了!有人可以帮忙吗 谢谢

4

3 回答 3

4

如果没有找到与左连接匹配的内容,您将收到一个空的 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)
于 2013-07-19T14:17:41.103 回答
0

检查评估者表上的空 id:

SELECT * FROM users u LEFT JOIN staff_to_assessors s2a 
ON u.id = s2a.staff_id 
WHERE s2a.staff_id is null 
于 2013-07-19T14:17:49.540 回答
0

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

SELECT
    *
FROM
    `users`
WHERE
    `users`.`id` NOT IN (
        SELECT
            `staff_to_assessors`.`staff_id`
        FROM
            `staff_to_assessors`
    )
于 2013-07-19T14:18:10.317 回答