Standardní a přenosné SQL by EXISTUJE... a je sémanticky stejné IN
SELECT *
FROM requests R
WHERE
EXISTS (SELECT *
FROM node n
WHERE r.id = n.nid AND r.langid = n.langid
)
Vícesloupcové IN není přenosné alespoň na SQL Server nebo Sybase.
Další poznámky:
- JOIN může vyžadovat DISTINCT a není totéž jako IN nebo EXISTS.
- Poslední možností je INTERSECT, která je méně běžně podporována a funguje jako IN/EXISTS
- IIRC některé prehistorické verze MySQL (3.x?) nepodporovaly korelaci pro EXISTS