Answer Posted / vivek
Anti-joins:
Anti-joins are written using the NOT EXISTS or NOT IN
constructs. An anti-join between two tables returns rows
from the first table for which there are no corresponding
rows in the second table. In other words, it returns rows
that fail to match the sub-query on the right side.
Suppose you want a list of departments with no employees.
You could write a query like this:
SELECT d.department_name
FROM departments d
MINUS
SELECT d.department_name
FROM departments d, employees e
WHERE d.department_id = e.department_id
ORDER BY department_name;
The above query will give the desired results, but it might
be clearer to write the query using an anti-join:
SELECT d.department_name
FROM departments d
WHERE NOT EXISTS (SELECT NULL
FROM employees e
WHERE e.department_id = d.department_id)
ORDER BY d.department_name;
| Is This Answer Correct ? | 17 Yes | 3 No |
Post New Answer View All Answers
Why is theta join required?
How do I view a sql database?
how to add a new column to an existing table in mysql? : Sql dba
what are the differences between procedure-oriented languages and object-oriented languages? : Sql dba
what is subquery? : Sql dba
How do we use distinct statement? What is its use?
What is AUTH_ID and AUTH_USER in pl/sql ?
What is pl sql script?
Does sql*plus also have a pl/sql engine?
What are character functions in sql?
How to select random rows from a table?
What is interval partition?
what is the maximum length of a table name, database name, and fieldname in mysql? : Sql dba
what is an extent ? : Sql dba
What is PL/SQL Records?