MySQL:匹配不存在的记录
我有两张桌子:MySQL:匹配不存在的记录,mysql,Mysql,我有两张桌子: Customer +---+-----------+ |ID |VoicemailID| Voicemail +---+----------+ |ID |CustomerID| Voicemail.CustomerID将被重新定义为Customer.ID,visa将被重新定义为Customer.ID 如果Customer.VoicemailID不再是Voicemail表中的有效记录,我如何从Customer表中选择行 这种情况下,该记录以前存在于语音邮件表中,但后来被删除。我
Customer
+---+-----------+
|ID |VoicemailID|
Voicemail
+---+----------+
|ID |CustomerID|
Voicemail.CustomerID将被重新定义为Customer.ID,visa将被重新定义为Customer.ID
如果Customer.VoicemailID不再是Voicemail表中的有效记录,我如何从Customer表中选择行
这种情况下,该记录以前存在于语音邮件表中,但后来被删除。我现在需要在Customer表中找到所有具有不存在记录的VoicemailID的记录
我试过:
SELECT DISTINCT Customer.ID, Customer.VoicemailID
FROM Customers LEFT JOIN Voicemail ON Customer.VoicemailID <> Voicemail.ID
然而,我相信它会返回我想要的结果,与语音邮件实例仍然存在的结果混合在一起 您在左连接的右轨道上。但您需要查找匹配项,然后在失败时返回:
SELECT c.ID, c.VoicemailID
FROM Customer c LEFT JOIN
Voicemail v
ON c.VoicemailID = v.ID
WHERE v.ID IS NULL;
您在左连接的右轨道上。但您需要查找匹配项,然后在失败时返回:
SELECT c.ID, c.VoicemailID
FROM Customer c LEFT JOIN
Voicemail v
ON c.VoicemailID = v.ID
WHERE v.ID IS NULL;
可以使用子查询查找不存在的行。检查MySQL上不存在的语法:
可以使用子查询查找不存在的行。检查MySQL上不存在的语法:
这将为您提供所需的结果:
SELECT Customer.ID, Customer.VoicemailID
FROM Customer
LEFT JOIN Voicemail ON Voicemail.ID = Customer.VoicemailID
WHERE Voicemail.ID IS NULL
这将为您提供所需的结果:
SELECT Customer.ID, Customer.VoicemailID
FROM Customer
LEFT JOIN Voicemail ON Voicemail.ID = Customer.VoicemailID
WHERE Voicemail.ID IS NULL
您可以像这样使用相关子查询
select * from customer a
where not exists (select 1 from voicemail b
where b.id = a.voicemailid)
您可以像这样使用相关子查询
select * from customer a
where not exists (select 1 from voicemail b
where b.id = a.voicemailid)
这里是[PHP:5.5.3]中的正确查询,我在XAMPP1.8.3中使用phpMyAdmin
SELECT * FROM Customer
WHERE Customer.VoicemailID NOT IN (SELECT ID FROM Voicemail)
这里是[PHP:5.5.3]中的正确查询,我在XAMPP1.8.3中使用phpMyAdmin
SELECT * FROM Customer
WHERE Customer.VoicemailID NOT IN (SELECT ID FROM Voicemail)
我知道外键。不幸的是,原来的表设计器没有使用它们,因为我知道外键。不幸的是,原来的表设计器没有使用mihadstooappend和Customer。语音邮件不是空的,因为我只是在有数字的实例之后。谢谢:我有太多的append和Customer。语音邮件不是空的,因为我只是在有数字的实例之后。谢谢:请在您的答案上添加一点详细说明,这样它将包含一些仅适用于代码的上下文。请在您的答案上添加一点详细说明,这样它将包含一些仅适用于代码的上下文。