2012-04-02 16 views
1
$q="SELECT DISTINCT 
      t1.un_email,t6.email 
        FROM 
        sisters_7sisters.tbl_unsubscribe as t1, 
        sisters_7sisters.tbl_uptade_list as t6"; 

我編寫一個查詢像上面我需要檢索表 所有獨特的電子郵件,但它給了我對一些成果,這是不是唯一的..我想的從這些表中只收到一次 的電子郵件。SQL查詢----檢索所有電子郵件

+2

@TheJumpingFrog這unnecesary字段:你讀過查詢。他正在使用'DISTINCT'? – Arion 2012-04-02 07:07:47

+1

你忘了一些where-clause?你必須合乎邏輯地加入這兩個表格 – Tobi 2012-04-02 07:07:48

+0

@Arion啊,是的,在我評論後注意到了。通常,我在一行中使用所有列名,所以一開始就沒有注意到它。 – hjpotter92 2012-04-02 07:09:35

回答

0

這將是更好地使用連接加入這兩個表,並選擇不同的電子郵件

您所使用的不同,僅適用於結果中的每一列,而不是都在同一時間。

0

它不是你的朋友,你沒有任何where條款。然後,你可能會被罰款這種解決方案(沒有重複的電子郵件):

SELECT 
    t1.un_email AS email 
FROM 
    sisters_7sisters.tbl_unsubscribe as t1 
UNION 
SELECT 
    t6.email 
FROM 
    sisters_7sisters.tbl_uptade_list as t6 

或者你可以使用一個UNION ALL。這將返回重複:

SELECT 
    t1.un_email AS email 
FROM 
    sisters_7sisters.tbl_unsubscribe as t1 
UNION 
SELECT 
    t6.email 
FROM 
    sisters_7sisters.tbl_uptade_list as t6 
+0

或可能是UNION ALL而不是UNION – Tobi 2012-04-02 07:19:01

+0

我只是在想。如果他想要所有獨特的電子郵件。然後'UNION ALL'也會返回重複項。我會更新答案,並有一個'UNION ALL'。所以OP可以自己選擇 – Arion 2012-04-02 07:20:56

+0

你是對的!我認爲,OP現在有一個解決方案,他必須測試它... – Tobi 2012-04-02 07:22:55

0

我思你已經忘了加入ocndition

當您使用

select * from table1,table2 

它會創建一個cartisian product

如果表1爲

1 

2 

3 

和表2具有

作爲它們的數據。

笛卡爾乘積會

1 4 

1 5 

1 6 

2 4 

2 5 

2 6 

3 4 

3 5 

3 6 

刪除 你必須Join