sql >> Databasteknik >  >> RDS >> Mysql

Vad är det bästa sättet att använda LEFT OUTER JOIN för att kontrollera att det inte finns några relaterade rader

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

Du var nära.

Gör först sammanfogningen som vanligt, välj sedan alla rader för vilka en not null rad i Y är faktiskt null , så du är säker på att det finns en "ingen matchning" och inte bara en null värde i Y.

Notera också stavfelet (sedan korrigerat) du gjorde i frågan:

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


  1. TSQL e-postvalidering (utan regex)

  2. Hur man hittar dubbletter i 2 kolumner inte 1

  3. JSON vs. Serialized Array i databasen

  4. Extrahera datum (åååå/mm/dd) från en tidsstämpel i PostgreSQL