2014-11-04 30 views
0

說我有2列與電子郵件,在舊系統中,巫婆是建立在一個非常糟糕的方式,總之MySQL的加入/聯盟/鮮明的問題

1名爲信息表,包含了一個名爲值字段,並我只想要的值是關鍵是「電子郵件」,另一個名爲Email_queue的表包含一個名爲「email」的字段,其中包含一封電子郵件。

現在,我想以某種方式加入Information.value其中type =電子郵件和Email_queue.email,然後排序,使我留下了兩個表中唯一的電子郵件我。

這是我在已經到達,我不知道是否行得通,因爲表中包含大量的電子郵件。

SELECT DISTINCT value 
FROM 
    (SELECT Information.value FROM Information 
    LEFT OUTER JOIN 
    Email_queue ON Information.id=Email_queue.id WHERE Information.key = 'email') t 

這樣看起來正確嗎?

+0

是使用mysql還是sql server? – Tristan 2014-11-04 08:33:54

+0

MySQL我刪除了另一個標籤 – 2014-11-04 08:34:18

回答

0

我建議剛UNIONing 2個查詢在一起。 UNION默認會刪除重複項: -

SELECT value AS email 
FROM Information 
WHERE key = 'email' 
UNION 
SELECT email 
FROM Email_queue