The EXISTS operator is used to correlate rows from an SELECT statement with the other one being an subquery.
Course table
COURSE_ID |
NAME |
DESCRIPTION |
DURATION |
PRICE |
1 |
SQL 1 |
SQL course for beginners |
1 week |
10 |
2 |
SQL 2 |
SQL course for advanced |
2 week |
50 |
3 |
HTML5 |
Learn HTML 5 |
1 week |
10 |
4 |
PHP |
PHP course |
4 week |
75 |
5 |
CSS |
Learn CSS |
2 week |
20 |
Orders table
ORDER_ID |
COURSE_ID |
STUDENT_ID |
ORDER_DATE |
1 |
1 |
6 |
07-AUG-2014 10:11:03 |
2 |
5 |
7 |
23-SEP-2014 12:31:41 |
3 |
4 |
5 |
29-AUG-2014 09:55:54 |
21 |
5 |
6 |
01-DEC-2014 16:32:36 |
32 |
1 |
4 |
17-DEC-2014 17:22:27 |
Exists example
SELECT *
FROM course c
WHERE EXISTS (select * from orders o where o.course_id=c.course_id);
Output
COURSE_ID |
NAME |
DESCRIPTION |
DURATION |
PRICE |
1 |
SQL 1 |
SQL course for beginners |
1 week |
10 |
5 |
CSS |
Learn CSS |
2 week |
20 |
4 |
PHP |
PHP course |
4 week |
75 |
Not Exists example
SELECT *
FROM course c
WHERE NOT EXISTS (select * from orders o where o.course_id=c.course_id);
Output
COURSE_ID |
NAME |
DESCRIPTION |
DURATION |
PRICE |
3 |
4 |
5 |
29-AUG-2014 09:55:54 |
2 |
5 |
7 |
23-SEP-2014 12:31:41 |