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

kết hợp hai câu lệnh select trong hai cột?

Nếu mỗi truy vấn của bạn chỉ trả về 1 hàng, bạn có thể sử dụng:

SELECT 
(select Start_Date
    from table1  where Start_Date not in (
        select End_Date
        from table1)
) AS StartDate,
 (select End_Date from table1
    where End_Date not in (
        select Start_Date
        from table1)
 ) AS EndDate

Nếu các truy vấn của bạn trả về nhiều hơn 1 hàng, bạn phải chọn một giải pháp khác:

Bạn có thể sử dụng UNION :(Bạn sẽ có hai truy vấn bị lệch với "NULL" trong cột kia)

(select Start_Date, Null AS EndDate
    from table1  where Start_Date not in (
         select End_Date
         from table1)
) 
UNION
(select  Null As StartDate, End_Date 
    from table1
    where End_Date not in (
        select Start_Date
        from table1)
 ) 

Bạn có thể sử dụng JOIN Nếu bạn có một trường để sử dụng là "Tham gia Bật", bạn có thể sử dụng trường này, nếu không, bạn có thể thêm một trường để tham gia (nhưng bạn cần kiểm tra dữ liệu trả về để tránh lỗi) Ngoài ra, bạn phải kiểm tra loại tham gia có thể là. tốt cho bạn (Bên trong - Bên trái - chặt chẽ) Trong ví dụ này, tôi thêm một trường để nối và sử dụng Nối bên trong:

SELECT Start_Date, End_Date
FROM
(select 1 as InnerId, Start_Date
    from table1  where Start_Date not in (
        select End_Date
        from table1)
) As Tab1
 INNER JOIN
 (select  1 as InnerId, End_Date from table1
    where End_Date not in (
        select Start_Date
        from table1)
 ) AS Tab2
USING(InnerId)



  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 để truy vấn nhiều đến nhiều mối quan hệ tiếp theo?

  2. Chọn dữ liệu giữa hai ngày?

  3. Chọn từ một bảng mà không chọn trong bảng khác

  4. MySQL ERROR 2026 - Lỗi kết nối SSL - Ubuntu 20.04

  5. Không thể kết nối với MySQL bằng Sequelize