2010-12-01 197 views
1

我有源列表:返回沒有記錄的列表中的所有元素。 (MYSQL)

('feed1', 'feed2', 'feed3') 

我也有一個表feeds與源列表,我需要找到我的搜索列表,其飼料不會出現在數據庫中。

CREATE TABLE `feeds_filtered` (
    `id` CHAR(36) NOT NULL, 
    `url` VARCHAR(255) NOT NULL, 
    ...... 
    PRIMARY KEY (`id`) 
) ENGINE=MYISAM DEFAULT CHARSET=utf8; 

例如feed1和feed3存在於我的表中,所以我想讓feed 2返回。 請注意:飼料表也有feed4,feed5等,所以我不希望他們返回。只有feed2

我可以很容易地寫一個PHP腳本來做到這一點,但我想知道是否有一個簡單的方法來做到這一點是MySQL?

非常感謝!

回答

2

您可以創建一個臨時表,執行LEFT JOIN,然後獲取加入的RHS爲NULL的記錄。

-1

您可以使用諸如查詢:

select * from feeds_filtered 
where url is not in ('feed1', 'feed3') 
+0

除將提問者想要做它反過來。 – 2010-12-01 12:25:09

0

您可以選擇從一個表不上另一個表出現的項目,即:

select * from feeds_filtered where url not in (select url from feeds) 
相關問題