我有一个表格,我只想从中选择另一个表中不存在记录ID的记录。
以下是我的表格:
staff
表:
和我的staff_to_assessors
表格
我想要做的是从用户表中选择staff_to_assessors
表中不存在id的所有记录。
到目前为止,我有:
SELECT * FROM users u
LEFT JOIN staff_to_assessors s2a
ON u.id = s2a.staff_id WHERE u.id NOT IN...
我被困在最后一点!有人可以帮忙 感谢
答案 0 :(得分:4)
如果未找到针对左连接的匹配项,您将收到null 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)
答案 1 :(得分:0)
检查评估员表上的空id:
SELECT * FROM users u LEFT JOIN staff_to_assessors s2a
ON u.id = s2a.staff_id
WHERE s2a.staff_id is null
答案 2 :(得分:0)
就像@ UrGuardian4ngel所述,但这是整个查询
SELECT
*
FROM
`users`
WHERE
`users`.`id` NOT IN (
SELECT
`staff_to_assessors`.`staff_id`
FROM
`staff_to_assessors`
)