2012-03-02 142 views
0

说我有两个MySQL表:比较mysql的两个表通过PHP

country 
---- 
username  Country 
John   USA 
Sarah   Canada 
fav_color 
---- 
username  Color 
John   Blue 
Sarah   Green 

如何选择莎拉最喜欢的颜色,但只有当她是在加拿大?

喜欢的东西:

SELECT color FROM fav_color WHERE name='sarah' AND username=(a canadian username) 
+1

这是一个功课题吗? – 2012-03-02 23:20:27

+0

这看起来很像我的一个作业问题,但我喜欢这个基本的SQL问题有多个简洁但不同的正确答案。 – 2013-06-24 12:22:49

回答

1

选择对两个表,并指定要通过用户名匹配记录:

SELECT color FROM fav_color, country 
    WHERE fav_color.username='Sarah' AND 
    fav_color.username = country.username AND 
    country = 'Canada'; 
1

有关使用WHERE EXISTS如何?

SELECT color FROM fav_color 
    WHERE EXISTS 
     (SELECT username FROM country 
      WHERE country.username = fav_color.username 
      AND country.Country = 'Canada') 
1
select color from fav_color where 
    name='sarah' and 
    name in (
     select name from country where country='canada' 
    ) 
3

一个漂亮的直线前进加盟;

SELECT color FROM fav_color f 
JOIN country c ON c.username=f.username 
WHERE c.username='Sarah' 
    AND c.country='Canada'; 

演示here