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)