说我有这两个mysql表:
country
----
username Country
John USA
Sarah Canada
fav_color
----
username Color
John Blue
Sarah Green
如何选择Sarah最喜欢的颜色,但只有她在加拿大?
类似的东西:
SELECT color FROM fav_color WHERE name='sarah' AND username=(a canadian username)
答案 0 :(得分:3)
非常直接的JOIN;
SELECT color FROM fav_color f
JOIN country c ON c.username=f.username
WHERE c.username='Sarah'
AND c.country='Canada';
演示here。
答案 1 :(得分:1)
在两个表上选择并指定您要按用户名匹配记录:
SELECT color FROM fav_color, country
WHERE fav_color.username='Sarah' AND
fav_color.username = country.username AND
country = 'Canada';
答案 2 :(得分:1)
如何使用WHERE EXISTS
?
SELECT color FROM fav_color
WHERE EXISTS
(SELECT username FROM country
WHERE country.username = fav_color.username
AND country.Country = 'Canada')
答案 3 :(得分:1)
select color from fav_color where
name='sarah' and
name in (
select name from country where country='canada'
)