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

MYSQL - Vælg kun hvis rækken i LEFT JOIN ikke er til stede

Den venstre join vil producere null rækker for uoverensstemmelserne.
Det er disse null rækker, som du skal filtrere på.

SELECT * FROM mail  
LEFT JOIN block ON (block.blocker = 'Bob') 
WHERE block.blocker IS NULL

Det er lidt kvælende at deltage på en fast værdi, men en mere almindelig joinforbindelse (ud fra dine tabeller) ville være:

SELECT * FROM mail  
LEFT JOIN block ON (block.blocker = mail.receiver
                and block.blocked = mail.sender)<<-- these should match
WHERE block.blocker IS NULL                     <<-- select only mismatches
AND mail.receiver like 'bob';


  1. Skal jeg indeksere primærnøglekolonne(r) i Oracle

  2. Indsættelse og valg af UUID'er som binære(16)

  3. PDO MySQL-driver på Mac

  4. Konvertering af mysql kolonne fra INT til TIMESTAMP