0

我有两个名为 MytableA 和 MytableB 的表。MytableA 包含 609 行,MytableB 包含 607 行。两行具有相同的结构。我只想找出 MytableA 中存在哪些 imageURL(s) 而 MytableB 中不存在并显示那些缺失的行?谁能告诉我显示 MytableB 中缺少的那些行的 MySQL 语句是什么?

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`)
)
4

2 回答 2

10
SELECT *
  FROM MyTableA
 WHERE imageURL NOT IN (SELECT imageURL FROM MyTableB)

可能有更快的方法来做到这一点,但这具有简洁的优点。

于 2013-09-23T16:58:45.373 回答
1

我想你正在寻找这样的东西。它可能比子选择更好更快。

SELECT * 
FROM tableA 
LEFT JOIN tableB ON tableA.field = tableB.field 
WHERE tableB.field is NULL;
于 2015-11-20T15:12:02.590 回答