各クエリが1行のみを返す場合は、次を使用できます:
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
クエリが複数の行を返す場合は、別のソリューションを選択する必要があります:
UNION
を使用できます :(他の列の「NULL」とずれている2つのクエリがあります)
(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)
)
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)