Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MYSQL - Nur auswählen, wenn Zeile in LEFT JOIN nicht vorhanden ist

Die linke Verknüpfung erzeugt null Zeilen für die Diskrepanzen.
Das sind diese null Zeilen, nach denen Sie filtern müssen.

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

Es ist irgendwie seltsam, sich auf einen festen Wert zu verbinden, aber ein häufigerer Join (angesichts Ihrer Tabellen) wä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';