mysql - 查找多个列和表中不存在的唯一值

标签 mysql sql

错误配置的手动导入将我们的​​整个 AD 导入了我们的帮助台用户数据库,创建了一堆无关/重复的帐户。当然,没有可从中恢复的备份。

为了便于清理,我想运行一个查询来查找当前未链接到任何当前或存档工单的用户。我有三个表,USERHD_TICKETHD_ARCHIVE_TICKET。我想将 USER 中的 ID 字段与其他两个表中的 OWNER_IDSUBMITTER_ID 字段进行比较,返回USER.ID 中唯一不存在于其他四列中的值。

如何实现?

最佳答案

对每个右表id为空的关系做一个左连接:

select user.*
from user
left join hd_ticket on user.id = hd_ticket.owner_id
left join hd_ticket as hd_ticket2 on user.id = hd_ticket2.submitter_id
left join hd_archive_ticket on user.id = hd_archive_ticket.owner_id
left join hd_archive_ticket as hd_archive_ticket2 on user.id = hd_archive_ticket2.submitter_id
where hd_ticket.owner_id is null
and hd_ticket2.submitter_id is null
and hd_archive_ticket.owner_id is null
and hd_archive_ticket2.submitter_id is null

关于mysql - 查找多个列和表中不存在的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23940007/

相关文章:

MySQL:生成一个摘要列而不折叠任何行

sqlserver中的sql锁概念

mysql - 在此查询中使用 SQL UNION 的替代方法?

mysql - LEFT JOIN 返回不等于 ON 的结果

mysql - 优化Innodb表以释放可用空间

c++ - MySQL 服务器端超时

sql - 在 sql server 2008 中使用带有列和行总数的数据透视表

sql - 为什么 "Null Like X"和 "Not (Null Like X)"相等?

php - 使用 PDO 的更新语句是否根据 setFetchMode 准备返回数据?

php - 实际上是否可以通过 .CSV 文件将文件(图像)从您的 PC 上传到数据库?