sql >> Database >  >> RDS >> Mysql

MYSQL - Alleen selecteren als rij in LEFT JOIN niet aanwezig is

De linker join produceert null rijen voor de mismatches.
Het zijn die null rijen waarop u moet filteren.

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

Het is een soort wurging om met een vaste waarde mee te doen, maar een meer gebruikelijke deelname (gezien je tafels) zou zijn:

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. Hoe drop Unique Constraint-scripts in SQL Server-database te genereren - SQL Server / TSQL-zelfstudie, deel 99

  2. Hoe tekenreeks naar tijdstempel te converteren zonder tijdzone

  3. INSERT IGNORE vs INSERT ... OP DUPLICATE KEY UPDATE

  4. Laravel $q->where() tussen datums