如何使用MySQL语句查找两个MySQL表之间的差异?
我有两张桌子,分别是MytableA和MytableB。MytableA可容纳609行,MytableB可容纳607行。两行具有相同的结构。我只是想找出哪些ImageURL存在于MytableA中,而哪些ImageURL不存在于MytableB中,并显示那些缺失的行?有人能告诉我什么是MySQL语句来显示MytableB中缺少的行吗如何使用MySQL语句查找两个MySQL表之间的差异?,mysql,Mysql,我有两张桌子,分别是MytableA和MytableB。MytableA可容纳609行,MytableB可容纳607行。两行具有相同的结构。我只是想找出哪些ImageURL存在于MytableA中,而哪些ImageURL不存在于MytableB中,并显示那些缺失的行?有人能告诉我什么是MySQL语句来显示MytableB中缺少的行吗 CREATE TABLE IF NOT EXISTS `MytableA` ( `ID` int(11) NOT NULL AUTO_INCREMENT,
CREATE TABLE IF NOT EXISTS `MytableA` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) DEFAULT NULL,
`bio` varchar(90) DEFAULT NULL,
`website` varchar(90) DEFAULT NULL,
`profile` varchar(90) NOT NULL,
`fullname` varchar(250) DEFAULT '',
`diffId` varchar(250) NOT NULL DEFAULT '',
`imageUrl` varchar(250) NOT NULL DEFAULT '',
`PageURL` varchar(250) NOT NULL DEFAULT '',
`CreatedTime` varchar(250) NOT NULL DEFAULT '',
`imageTags` varchar(250) NOT NULL DEFAULT '',
`date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`ID`)
)
也许有更快的方法可以做到这一点,但这具有简洁的优点。我想您正在寻找类似的方法。它可能比子选择更好更快
SELECT *
FROM tableA
LEFT JOIN tableB ON tableA.field = tableB.field
WHERE tableB.field is NULL;
询问代码的问题必须证明对正在解决的问题的最低理解。包括尝试过的解决方案、它们不起作用的原因以及预期结果。另请参阅:Stack Overflow question Checklist向我们展示您尝试了什么,farMany感谢它使工作变得如此简单:-对于行数更多的表,您将执行左连接并在右侧值上测试null
SELECT *
FROM tableA
LEFT JOIN tableB ON tableA.field = tableB.field
WHERE tableB.field is NULL;