sql >> Databáze >  >> RDS >> Mysql

MYSQL - Vyberte pouze v případě, že řádek v LEFT JOIN není přítomen

Levé spojení vytvoří null řádky pro neshody.
Jsou to ty null řádky, které potřebujete filtrovat.

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

Je to trochu přiškrcující se připojovat na pevnou hodnotu, ale běžnější spojení (vzhledem k vašim tabulkám) by bylo:

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. Vkládání řádků do tabulky pouze s jedním sloupcem IDENTITY

  2. Kolik řádků je „příliš mnoho“ pro tabulku MySQL?

  3. SQL Server převést řetězec na datum a čas

  4. Jak importuji moduly nebo instaluji rozšíření v PostgreSQL 9.1+?