2012-02-07 11 views
0

私は4列(ID、送信者、受信者、ステータス)のテーブルの友人を持っており、送信者と受信者の列を統合(再会、私は単語を英語では知りません)するクエリが必要です。 は、例えば、表には、このmysql query unite 2 columns

| 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を使用してください)。