2012-02-27 70 views
0

我有一個表'table1',它有2列,flange_startflange_end。我想要一個查詢來檢索一個獨特的法蘭列表,無論它是從_start還是_endMYSQL Group By多列 - 唯一列表

我試着用flange_start進行分組,然後flange_end然後對結果進行分組。

有沒有更好的方法?

回答

1

我的提示是UNION:

select distinct(flange_start) as flange from table1 
union distinct 
select distinct(flange_end) as flange from table1 

,並鏈接到更多閱讀:http://dev.mysql.com/doc/refman/5.0/en/union.html

+0

除此之外,如果您需要能夠回到它是否是一個開始或結束法蘭,我會建議添加一個文本字段以供參考,例如'SELECT DISTINCT(flange_start)AS法蘭,'start'AS flange_type FROM table1'(當然還有UNION等) – 2012-02-27 09:52:38

0
SELECT flange FROM 
    (SELECT flange_start as flange GROUP BY flange_start 
    UNION 
    SELECT flange_end as flange FROM table1 GROUP BY flange_end) 
GROUP BY flange 

的想法是,你在UNION獨特的法蘭然後只選擇那些在外部的一個查詢。建議您使用GROUP BY而不是distinct,因爲DISTINCT可能並不總是返回不同的值。

您可能還需要將索引添加到flange_start和flange_end列以提高性能。