2012-03-02 208 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