sql >> Database >  >> RDS >> Mysql

Wat is de beste manier om LEFT OUTER JOIN te gebruiken om te controleren op niet-bestaan ​​van gerelateerde rijen

SELECT count(id) FROM X 
LEFT OUTER JOIN Y ON (y.X_id = X.id AND y.foo = 'bar')
WHERE y.X_id is null

Je was dichtbij.

Voer eerst de join uit zoals normaal en selecteer vervolgens alle rijen waarvoor een not null rij in Y is in feite null , zodat u zeker weet dat er een "geen overeenkomst" is en niet alleen een null waarde in Y.

Let ook op de typfout (sinds gecorrigeerd) die u in de query hebt gemaakt:

LEFT OUTER JOIN Y AS
-- should be
LEFT OUTER JOIN Y ON
-- This however is allowed
LEFT OUTER JOIN table2 as Y ON ....


  1. MariaDB JSON_DETAILED() uitgelegd

  2. Wanneer moet ik UNSIGNED en SIGNED INT gebruiken in MySQL?

  3. LEAD en LAG analytische functies

  4. Uitdagingsoplossingen voor generatorreeksen - deel 2