2014-09-25 53 views
0

得到一個列的DISINCT值我有喜歡如何從聯接查詢

SELECT DISTINCT table_1.id_1, 
    table_1.id_2, 
    table_1_id_3 
FROM table_1 
INNER JOIN table_2 
    ON table_1.id_1 = table_2.id_1 
     AND table_1.id_2 = table_2.id_2 
INNER JOIN table_3 
    ON table_2.id_1 = table_3.id_2 
     AND table_2.id_2 = table_3.id_2 
WHERE table_2.code = 'Y' 
    AND table_2.site = 'N' 
    AND table_3.code = 'Q' 

查詢這讓我ID_1,ID_2和ID_3滿足條件的不同組合。查詢應該如何獲得與id_1匹配的所有條件的唯一值。

我沒有發佈表格內容,因爲他們有大量的列,因爲這個問題是一個查詢特定的問題。

回答

1

您可以從查詢中刪除第二個和第三個字段。

SELECT DISTINCT 
    table_1.id_1  
FROM table_1 
INNER JOIN table_2 
    ON table_1.id_1 = table_2.id_1 
     AND table_1.id_2 = table_2.id_2 
INNER JOIN table_3 
    ON table_2.id_1 = table_3.id_2 
     AND table_2.id_2 = table_3.id_2 
WHERE table_2.code = 'Y' 
    AND table_2.site = 'N' 
    AND table_3.code = 'Q' 
+0

當我除去第二和第三字段,我收到一條錯誤消息指出「錯誤代碼:1136列計數不在行匹配值計數1」 – 2014-09-25 19:39:27

+0

我假設這是一個INSERT查詢的一部分,那麼?從插入中刪除第2列和第3列。知道第2列和第3列的值將爲NULL。 – JNevill 2014-09-25 19:43:04

+0

保持您的查詢爲您的內部查詢,並寫入選擇distict id_1(..您的查詢..); – Logan 2014-09-25 19:47:11