Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

sql berbeda, mendapatkan 2 kolom

Anda harus menggabungkan kedua kolom lalu memfilter untuk nilai yang berbeda:

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

jika Anda benar-benar membutuhkan semua dalam string terpisah koma, gunakan GROUP_CONCAT([DISTINCT] fungsi agregasi.

DIEDIT :

Anda harus menandai sebagai solusi jawaban Gerald. Setelah menguji operator union dan membaca ulang dokumentasi operator mysql union , secara default, filter mysql untuk nilai yang berbeda:

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)

lalu, kueri terakhir adalah:

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

Perhatikan bahwa distinct tidak wajib.

Hanya jika Anda memerlukan string terpisah koma, solusi pertama diperlukan:

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. MySQL:Ukuran tipe data desimal

  2. java.sql.SQLSyntaxErrorException:Kolom tidak diketahui .JPA Entity Issue?

  3. MySql, pisahkan string dan masukkan ke dalam tabel

  4. Kunci yang diberikan tidak ada dalam kamus. dengan mysql

  5. python - _mysql Tidak dapat membuka file include:'config-win.h':Tidak ada file atau direktori seperti itu saat menginstal mysql-python