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

MYSQL:seleziona solo se la riga in LEFT JOIN non è presente

Il join sinistro produrrà null righe per le mancate corrispondenze.
Sono quelle null righe su cui devi filtrare.

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

È una specie di strangolamento unirsi a un valore fisso, tuttavia, un join più comune (date le tue tabelle) sarebbe:

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';