2014-02-20 119 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;