2013-09-23 105 views
-1

我有兩個表叫MytableA和MytableB。 MytableA擁有609行,MytableB擁有607行。兩行都具有相同的結構。我只想知道MytableA中存在的ImageURL不存在於MytableB中並顯示那些缺少的行嗎?任何人都可以告訴我什麼是MySQL語句來顯示MytableB中缺少的那些行嗎?如何使用MySQL語句找到兩個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`) 
) 
+1

詢問代碼的問題必須證明對所解決問題的最小理解。包括嘗試解決方案,爲什麼他們沒有工作,以及預期的結果。另請參閱:堆棧溢出問題清單 – ApplePie

+0

告訴我們你到目前爲止嘗試的是什麼 – Ibu

回答

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

可能有更快的方式做到這一點,但是這簡潔的優點。

+0

很多感謝它讓工作變得如此簡單:-) – user1788736

+2

對於有更多行的表,你可以做一個左連接,並在右邊測試null值 – Ericson578

1

我想你正在尋找這樣的東西。再次選擇可能會更好,更快。

SELECT * 
FROM tableA 
LEFT JOIN tableB ON tableA.field = tableB.field 
WHERE tableB.field is NULL; 
相關問題