Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

sql khác biệt, nhận được 2 cột

Bạn nên kết hợp cả hai cột và sau đó lọc các giá trị riêng biệt:

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

nếu bạn thực sự cần tất cả trong một chuỗi riêng biệt bằng dấu phẩy, hãy sử dụng GROUP_CONCAT ([DISTINCT] chức năng tổng hợp.

ĐÃ CHỈNH SỬA :

Bạn nên đánh dấu là câu trả lời Gerald giải pháp. Sau khi kiểm tra toán tử liên minh và đọc lại tài liệu về toán tử liên minh mysql , theo mặc định, bộ lọc mysql cho các giá trị riêng biệt:

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)

sau đó, truy vấn cuối cùng là:

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

Lưu ý rằng distinct không bắt buộc.

Chỉ khi bạn cần một chuỗi dấu phẩy, giải pháp đầu tiên là cần thiết:

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. Làm thế nào để lập lịch chức năng động với cron job?

  2. Hàm MAX được sử dụng với mệnh đề GROUP BY

  3. mysqld:Không thể thay đổi dir thành dữ liệu. Máy chủ không khởi động

  4. Cách sử dụng MySQL Rollup

  5. Lỗi khi tải Mô-đun MySQLdb 'Bạn đã cài đặt mysqlclient hay MySQL-python?'