Ваш синтаксис очень близок к стандартному SQL!
Следующее является действительным ПОЛНЫЙ SQL-92 (как подтверждено валидатором Mimer SQL-92 )
SELECT *
FROM foo
WHERE (a, b) IN (
SELECT a, b
FROM bar
);
Конечно, не каждый продукт SQL поддерживает полный SQL-92 (позор!). Если кому-то хотелось бы увидеть этот синтаксис поддерживаемым в Microsoft SQL Server, он может проголосовать за него здесь .
Еще одна конструкция SQL-92, которая более широко поддерживается (например, Microsoft SQL Server и Oracle), - INTERSECT
, например.
SELECT a, b
FROM Foo
INTERSECT
SELECT a, b
FROM Bar;
Обратите внимание, что эти конструкции правильно обрабатывают значение NULL
, в отличие от некоторых других предложений, например, здесь. использующие EXISTS (<equality predicates>)
, объединенные значения и т. д.