Query

SQL EXISTS / NOT EXISTS

Test whether a subquery returns at least one row.

Availability: Common SQL with references for SQL standard, MySQL/MariaDB, PostgreSQL, SQL Server, SQLite and Oracle Database; syntax and feature support vary by engine and version.中文

Syntax

WHERE EXISTS (SELECT 1 FROM ... WHERE correlated_condition)

Examples

Test whether a subquery returns at least one row.

SELECT c.id FROM customers c WHERE EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.id);

SQLite-oriented example; consult the relevant dialect manual.

SELECT c.id FROM customers c WHERE EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.id);

Parameters, options and clauses

Option / clauseDescription
SELECT / expressionChoose output columns, expressions, aliases or functions.
FROM / JOINChoose source tables and combine related rows.
WHEREFilter rows before grouping; use IS NULL for null checks.
GROUP BY / HAVINGGroup rows and filter aggregate groups.
ORDER BYSort the result; ASC is commonly the default and DESC reverses it.
LIMIT / OFFSET / FETCHLimit or skip rows; syntax differs by database dialect.

Dialect references

Safety note

Review a command and its target before running it. Commands that alter files, services, accounts, disks, permissions or databases may be difficult to reverse. Test in a safe environment and keep backups.

Official reference ↗Back to directory