2012-02-07 78 views
0

我有一個4列(id,發送者,接收者,狀態)的表朋友,我需要一個查詢,將統一(團聚,我不知道英文單詞)發送者和接收者列。 例如表看起來像這樣mysql query unite 2列

| sender | receiver | 
| 2 | 10  | 
| 2 | 8  | 
| 2 | 9  | 
| 6 | 2  | 
| 7 | 3  | 

和查詢應該只給從發送者和接收者的唯一ID。 (2,3,6,7,8,10)

回答

2
SELECT DISTINCT a.iResult 
FROM 
    (SELECT sender as iResult FROM tableName 
     UNION 
    SELECT receiver as iResult FROM tableName) a 
ORDER BY iResult ASC 

返回

2 
3 
6 
7 
8 
9 
10 

OR

SELECT GROUP_CONCAT(b.iResult) 
    (SELECT DISTINCT a.iResult 
    FROM 
      (SELECT sender as iResult FROM tableName 
       UNION 
       SELECT receiver as iResult FROM tableName) a 
     ORDER BY iResult ASC) b 

回報

2,3,6,7,8,9,10 
4

這聽起來像是一份工作union

select sender as id from <table_name> 
union 
select receiver as id from <table_name> 

請注意union將刪除重複項(如果要保留重複項,請使用union all)。