Reputation: 660
Say I have two tables. new_dogs and name_color_pairs.
The records in name_color_pairs must be unique pairs.
new_dogs
---------
Name
Location Found
Color
Breed
name_color_pairs
---------
name
color
How can I select the name/color pairs from new_dogs that aren't currently in the name_color_pairs table so that they can be inserted?
Upvotes: 1
Views: 69
Reputation: 31842
SELECT name, color FROM new_dogs
EXCEPT
SELECT name, color FROM name_color_pairs
or
SELECT name, color FROM new_dogs nd
WHERE NOT EXISTS (SELECT name, color FROM name_color_pairs ncp WHERE (ncp.name = nd.name) AND (ncp.color = nd.color))
or finally (should be working everywhere):
SELECT name, color FROM new_dogs nd
LEFT JOIN name_color_pairs ncp
ON (ncp.color = nd.color) AND (ncp.name = nd.name)
WHERE ncp.name IS NULL
Upvotes: 4