आपको दोनों स्तंभों को मिलाना चाहिए और फिर अलग-अलग मानों के लिए फ़िल्टर करना चाहिए:
select distinct T.from_to from
( select `from` as from_to
from messages
union
select `to` as from_to
from messages
) T
यदि आपको वास्तव में अल्पविराम से अलग स्ट्रिंग में सभी की आवश्यकता है, तो GROUP_CONCAT([DISTINCT] एकत्रीकरण समारोह।
संपादित :
आपको समाधान जेराल्ड उत्तर के रूप में चिह्नित करना चाहिए। टेस्ट यूनियन ऑपरेटर के बाद और mysql Union ऑपरेटर डॉक्यूमेंटेशन को फिर से पढ़ें। , डिफ़ॉल्ट रूप से, अलग-अलग मानों के लिए mysql फ़िल्टर:
mysql> create table ta( a int );
Query OK, 0 rows affected (0.05 sec)
mysql> insert into ta values (1),(1),(2);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select * from ta
-> union
-> select * from ta;
+------+
| a |
+------+
| 1 |
| 2 |
+------+
2 rows in set (0.00 sec)
फिर, अंतिम क्वेरी है:
select `from` as from_to
from messages
union distinct
select `to` as from_to
from messages
ध्यान दें कि distinct
अनिवार्य नहीं है।
केवल अगर आपको अल्पविराम से अलग स्ट्रिंग की आवश्यकता है तो पहला समाधान आवश्यक है:
select distinct GROUP_CONCAT( distinct T.from_to from )
( select `from` as from_to
from messages
union
select `to` as from_to
from messages
) T