2014-02-20 89 views
0

我正在尋找最有效的方式來寫這個查詢...選擇不同並加入?

從表X,我需要一個唯一的ID選擇。 從表Y,我需要去那些IDS

SELECT DISTINCT (x.id) 
    FROM x 

SELECT y.text 
    FROM Y 
    WHERE x.id = y.id 

我知道我可以做這樣的事情的文字,但

SELECT y.text 
    FROM Y 
    WHERE y.id IN (SELECT DISTINCT (x.id) 
         FROM x) 

我看了一些帖子約的很慢加入,但我不熟悉他們。你們任何一位大師都想告訴我應該怎麼做,我會很感激的。

+0

嘗試['GROUP BY'(https://dev.mysql.com/doc/refman/5.5/en/select.html) – miken32

+0

嘗試'EXISTS '功能。 – 2014-02-20 21:07:22

回答

2
Select y.text from y inner join 
    (Select x.id from x 
    group by x.id) x 
on x.id = y.id 
+0

謝謝,像一個魅力工作 – user1747876

0

這是如何工作的?完全把我的頭頂部...

SELECT x.id, y.text FROM x LEFT JOIN y USING (id) GROUP BY x.id;