Standard og bærbar SQL ville være EXISTS.. og er semantisk den samme IN
SELECT *
FROM requests R
WHERE
EXISTS (SELECT *
FROM node n
WHERE r.id = n.nid AND r.langid = n.langid
)
Multi-kolonne IN er i det mindste ikke portabel til SQL Server eller Sybase.
Andre bemærkninger:
- ET JOIN kræver muligvis en DISTINCT og er ikke det samme som IN eller EKSISTERER.
- Den sidste mulighed er INTERSECT, som er mindre almindeligt understøttet og fungerer som IN/EXISTS
- IIRC nogle forhistoriske MySQL-versioner (3.x?) understøttede ikke korrelationen for EXISTS