Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用MySQL语句查找两个MySQL表之间的差异?_Mysql - Fatal编程技术网

如何使用MySQL语句查找两个MySQL表之间的差异?

如何使用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,

我有两张桌子,分别是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,
  `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;