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

SQL:NOT IN-Alternative zum Auswählen von Zeilen basierend auf Werten von * anderen * Zeilen?

So:

SELECT a.name, a.team
FROM bowlers a
LEFT OUTER JOIN bowlers b ON a.name = b.name AND b.team = 'pin pals'
WHERE a.team = 'The homer team'
AND b.name IS NULL;

Sie können es auch so machen:

SELECT a.name, a.team
FROM bowlers a
WHERE a.team = 'The homer team'
AND NOT EXISTS (SELECT * FROM bowlers b
    WHERE b.team = 'pin pals'
    AND a.name = b.name
    );

Das nennt man übrigens "Left Anti-Semi Join".