Mysql
 sql >> Baza danych >  >> RDS >> Mysql

sql odrębne, uzyskując 2 kolumny

Powinieneś połączyć obie kolumny, a następnie filtrować według różnych wartości:

select distinct T.from_to from
( select `from` as from_to
  from messages
  union
  select `to` as from_to
  from messages
) T

jeśli naprawdę potrzebujesz wszystkiego w oddzielnym ciągu przecinkami, użyj GROUP_CONCAT([DISTINCT] funkcja agregacji.

EDYTOWANO :

Jako rozwiązanie należy oznaczyć odpowiedź Geralda. Po przetestowaniu operatora związku i ponownie przeczytaj dokumentację operatora związku mysql , domyślnie filtr mysql dla różnych wartości:

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)

następnie ostatnie zapytanie jest:

  select `from` as from_to
  from messages
  union distinct
  select `to` as from_to
  from messages

Zauważ, że distinct nie jest obowiązkowe.

Tylko jeśli potrzebujesz ciągu z rozdzielonymi przecinkami, konieczne jest pierwsze rozwiązanie:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nielegalna mieszanka zestawień Błąd MySQL

  2. MySQL:kolumna obliczeniowa

  3. kategoria php, drzewo podkategorii

  4. Jak długo powinno zająć zbudowanie indeksu przy użyciu ALTER TABLE w MySQL?

  5. Uwierzytelnianie przy użyciu starego hasła nie jest już obsługiwane, użyj haseł w stylu 4.1