sql >> Databasteknik >  >> RDS >> Mysql

kombinera två välj uttalande i två kolumner?

Om var och en av dina frågor bara returnerar en rad kan du använda:

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

Om dina frågor returnerar mer än 1 rad måste du välja en annan lösning:

Du kan använda UNION :(Du kommer att ha de två frågorna feljusterade med "NULL" i den andra kolumnen)

(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)
 ) 

Du kan använda JOIN Om du har ett fält att använda som "Join On" kan du använda det här fältet, om inte kan du lägga till ett fält för att gå med (men du måste kontrollera data som returneras för att undvika fel) Du måste även kontrollera vilken typ av join som kan vara bra för dig (Inre - Vänster - höger) I exemplet lägger jag till ett fält för att gå med och använder en 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)



  1. Hittade en svag escape-funktion för MySql, hur utnyttjar jag?

  2. SQL FOREIGN KEY Begränsning:The Ultimate, Easy Guide för nybörjare

  3. mysql_connect():Ingen anslutning kunde göras eftersom målmaskinen aktivt vägrade det

  4. Får datumlista inom ett intervall i PostgreSQL