sql >> Database teknologi >  >> RDS >> Mysql

kombinere to vælg erklæring i to kolonner?

Hvis hver af dine forespørgsler kun returnerer 1 række, kan du bruge:

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
 

Hvis dine forespørgsler returnerer mere end 1 række, skal du vælge en anden løsning:

Du kan bruge UNION :(Du vil have de to forespørgsler forkert justeret med "NULL" i den anden kolonne)

(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 bruge JOIN Hvis du har et felt til at bruge som "Join On" kan du bruge dette felt, hvis ikke kan du tilføje et felt for at deltage (men du skal tjekke data returneret for at undgå fejl) Du skal også tjekke hvilken slags join kan være godt for dig (Indre - Venstre - højre)I eksemplet tilføjer jeg et felt for at deltage og bruger en indre 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. MySQL-replikering være tovejs

  2. Er der en bedre måde at tildele tilladelser til midlertidige tabeller i MySQL?

  3. Har det indflydelse på ydeevnen, når du bruger DECIMAL(17,13) til både bredde- og længdegradsdata i MySQL?

  4. Mysql vs sql express server (HEX -> bigint og bigint -> HEX konvertering)