🔍
👶 Kids📝 Blog About Contact 🚀 Get Started Free

SQL – EXISTS

Check if a subquery returns any rows at all using the EXISTS operator for efficient conditional filtering.

EXISTS checks whether a subquery returns at least one row. If the subquery produces any result (even one), EXISTS evaluates to TRUE and the outer row passes the filter. It short-circuits — the moment one match is found, it stops looking. This makes EXISTS surprisingly fast for checking “is there any related data?”

A common use case: find all students who have at least one completed enrollment. You do not need to know the details of the enrollment, just whether one exists.

EXISTS vs IN

EXISTSIN
Works withAny subqueryScalar list
ReturnsTRUE/FALSEMatches value
Performance on largeOften fasterCan be slower
With NULLsSafeTricky

Try It Yourself — Interactive SQL Editor

Edit the query below and click Run Query ▶ to see live results powered by SQLite running directly in your browser.

SQLite – edit & run
Results
← Click Run Query ▶ to see results

Key Points

  • EXISTS returns TRUE if subquery has any rows, FALSE otherwise
  • SELECT 1 in the subquery is a convention — the actual value does not matter
  • NOT EXISTS finds records with no matching related data
  • Often faster than IN when checking for existence in large datasets

Pro Tip from CodesCompiler: The best way to learn SQL is to break things intentionally — modify the query above, change the WHERE conditions, try different columns. Every error teaches you something the docs cannot.

In the next lesson, we continue exploring SQL’s powerful feature set to build your database mastery.