通过php比较两个表与mysql

时间:2012-03-02 23:14:08

标签: php mysql

说我有这两个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)

4 个答案:

答案 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'
    )