Say I have two tables
First_table
id | occupation |
---|---|
efg | carpenter |
hjk | teacher |
moo | scientist |
dss | engineer |
Second_table
id | state |
---|---|
efg | PA |
loi | DE |
moo | NY |
nbw | MD |
Now I want to write a query that gets rid of the rows of the first table, if first_table.id is in second_table.id. So the output would be
id | occupation |
---|---|
hjk | teacher |
dss | engineer |
One way I could do this is by writing a where clause, and then put parameters into the where clause such as
where first_table.id != moo and first_table.id != efg
but that would require me to write some logic to figure out which data to exclude, and I would want all the logic to be in a query anyways.
CodePudding user response:
This sounds like not exists
:
select f.*
from first_database f
where not exists (select 1 from second_database s where s.id = f.id);