2011-10-29 89 views
1

说我有两张桌子。 new_dogs和name_color_pairs。如何编写此SQL SELECT查询?

name_color_pairs中的记录必须是唯一对。

new_dogs 
--------- 
Name 
Location Found 
Color 
Breed 


name_color_pairs 
--------- 
name 
color 

如何可以选择从当前未在name_color_pairs表new_dogs名称/颜色配对,让他们可以插入?

+1

你应该写数据库,您正在使用。它是MySQL吗? – LukLed

回答

4
SELECT name, color FROM new_dogs 
EXCEPT 
SELECT name, color FROM name_color_pairs 

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)) 

或最后(应该是无处不在的工作):

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 
+0

太棒了,谢谢! – MikeJerome

+0

你有没有机会知道如何解决这个相关的问题? http://stackoverflow.com/questions/7942650/how-would-i-write-this-sql-update-query – MikeJerome