MySQL + SQL · Lesson 73
EXISTS and NOT EXISTS
EXISTS Operator
EXISTS returns TRUE if a subquery returns at least one row. NOT EXISTS is the opposite. Often faster than IN for checking existence.
Examples
-- students who have paid at least one fee
SELECT name FROM students s
WHERE EXISTS (SELECT 1 FROM fees f WHERE f.roll_no = s.roll_no);
-- students who have NOT paid any fee
SELECT name FROM students s
WHERE NOT EXISTS (SELECT 1 FROM fees f WHERE f.roll_no = s.roll_no);
Summary
- EXISTS = true if the subquery has any row; NOT EXISTS = none.
- Great for "has related record / has no related record" checks.
💻 Live Code Editor
This page's programs are ready here — run them, edit them, and learn. No installation needed.
Powered by OneCompiler. The code loads into the editor automatically — press Run to see the output. If the editor does not open, open it in a new tab.