我有一個表'table1',它有2列,flange_start
和flange_end
。我想要一個查詢來檢索一個獨特的法蘭列表,無論它是從_start
還是_end
。MYSQL Group By多列 - 唯一列表
我試着用flange_start
進行分組,然後flange_end
然後對結果進行分組。
有沒有更好的方法?
我有一個表'table1',它有2列,flange_start
和flange_end
。我想要一個查詢來檢索一個獨特的法蘭列表,無論它是從_start
還是_end
。MYSQL Group By多列 - 唯一列表
我試着用flange_start
進行分組,然後flange_end
然後對結果進行分組。
有沒有更好的方法?
我的提示是UNION:
select distinct(flange_start) as flange from table1
union distinct
select distinct(flange_end) as flange from table1
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列以提高性能。
除此之外,如果您需要能夠回到它是否是一個開始或結束法蘭,我會建議添加一個文本字段以供參考,例如'SELECT DISTINCT(flange_start)AS法蘭,'start'AS flange_type FROM table1'(當然還有UNION等) – 2012-02-27 09:52:38