sql >> Database teknologi >  >> RDS >> Oracle

Den siger, at jeg ikke har valgt nogen række?

Der er et par måder at gøre dette på:

Du kan bruge en anti-join, såsom:

SELECT m.MEMBERID,
       m.LASTNAME,
       m.FIRSTNAME
  FROM MEMBERS m
  WHERE m.MEMBERID NOT IN (SELECT DISTINCT MEMBERID
                             FROM CURRENTLOAN
                           UNION ALL
                           SELECT DISTINCT MEMBERID
                             FROM HISTORY);

En anden måde (og min foretrukne metode) at gøre, hvad du vil, er:

SELECT DISTINCT m.MEMBERID,
                m.LASTNAME,
                m.FIRSTNAME
  FROM MEMBERS m
  LEFT OUTER JOIN (SELECT DISTINCT MEMBERID
                     FROM (SELECT MEMBERID
                             FROM CURRENTLOAN
                           UNION ALL
                           SELECT MEMBERID
                             FROM HISTORY)) u
    ON u.MEMBERID = m.MEMBERID
  WHERE u.MEMBERID IS NULL;

Men givet de data, du har vist, bør denne forespørgsel, såvel som din oprindelige forespørgsel, returnere nul rækker. SQLFiddle her

Bemærk, at hvis du kommenterer det aktuelle lån til medlem 004, så returneres "Joe Brown" SQLFiddle her

Held og lykke.




  1. MySql vælger standardværdi, hvis der ikke er nogen resultater?

  2. Sorter efter dato (nyeste)

  3. SQL Server Failover Cluster Installation -3

  4. CodeIgniter PDO-databasedriver virker ikke