Möglicherweise versehentlich auf eine gute SQL-Testfrage gestolpert.SQL LEFT JOIN where-Klausel mit IN-Vergleich
- Ich habe eine Tabelle mit sagen wir ~ 100 Benutzernamen.
- Ich habe eine Reihe von 10 möglichen Benutzernamen {aname, bname, cname, dname, ...}
Wenn ich tun:
SELECT user.username FROM user WHERE user.username IN ('aname', 'bname', 'cname',...);
ich eine Liste von Benutzernamen für ausgewählte bekommen, minus die nicht in der Tabelle gefundenen, großartig.
Was ich eigentlich will, ist eine Liste der NICHT in der Tabelle gefundenen.
Wenn die WHERE...IN
Klausel Liste eine Tabelle war, würde ich nur LEFT JOIN
es auf die Benutzertabelle und Filter für NULLs
.
Gibt es eine Möglichkeit, dies zu tun, ohne eine temporäre Tabelle zu erstellen, und die Verbindung zur Benutzertabelle zu verlassen? Ich denke, eine Art linker Join der Benutzertabelle zur WHERE...IN
Klausel?
Ich habe es noch nie getan oder gesehen, aber vielleicht existiert es.
yey vielleicht brauchen Sie nicht in – Beginner