Wenn jede Ihrer Abfragen nur eine Zeile zurückgibt, können Sie Folgendes verwenden:
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
Wenn Ihre Abfragen mehr als eine Zeile zurückgeben, müssen Sie eine andere Lösung wählen:
Sie können UNION
verwenden :(Du wirst die beiden Abfragen mit "NULL" in der anderen Spalte falsch ausgerichtet haben)
(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)
)
Sie können JOIN
verwenden Wenn Sie ein Feld haben, das Sie als "Join On" verwenden können, können Sie dieses Feld verwenden, wenn nicht, können Sie ein Feld zum Join hinzufügen (aber Sie müssen die zurückgegebenen Daten überprüfen, um Fehler zu vermeiden). Außerdem müssen Sie überprüfen, um welche Art von Join es sich handelt Gut für Sie (Inner - Left - Right) Im Beispiel füge ich ein Feld zum Join hinzu und verwende einen Inner Join:
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)