sql >> Databasteknik >  >> RDS >> Mysql

Hitta poster från en tabell som inte finns i en annan

Det finns flera olika sätt att göra detta, med varierande effektivitet, beroende på hur bra din frågeoptimerare är och den relativa storleken på dina två tabeller:

Detta är det kortaste uttalandet och kan vara snabbast om din telefonbok är mycket kort:

SELECT  *
FROM    Call
WHERE   phone_number NOT IN (SELECT phone_number FROM Phone_book)

alternativt (tack vare Alterlife )

SELECT *
FROM   Call
WHERE  NOT EXISTS
  (SELECT *
   FROM   Phone_book
   WHERE  Phone_book.phone_number = Call.phone_number)

eller (tack vare WOPR)

SELECT * 
FROM   Call
LEFT OUTER JOIN Phone_Book
  ON (Call.phone_number = Phone_book.phone_number)
  WHERE Phone_book.phone_number IS NULL

(om man ignorerar att, som andra har sagt, är det normalt bäst att välja bara de kolumner du vill ha, inte '* ')



  1. Skapa en användare på MySQL

  2. hur man ändrar datum till tid i oracle 10g

  3. Laravel 5 PDOException kunde inte hitta drivrutinen

  4. Vad är den genomsnittliga lönen för en SQL-utvecklare?