2012-10-27 53 views
1

如果我有兩個表:如果兩個表值匹配,請查看值是否存在?

Temp   Snow 
--------  ------------- 
School   School Skip 
--------  ------------- 
School 1  School 1 1 
School 2  School 4 0 
School 3  School 3 1 

而且我想看看是否0存在於表SnowSkip列,是否有可能只是包含相同School值的行?在這種情況下,它只會在School 3School 1行中搜索0,因爲School名稱與Temp中的名稱匹配。

目前,我使用的是下面的,但它包含的每一行:

SELECT Skip FROM Snow WHERE Skip = 0 
+0

如此,這將是你想要的結果呢? –

+0

在這種情況下,沒有任何東西。但是,如果'Temp'和'Snow'中的'School 5','Skip'值爲'0',那麼它會'選擇'它。 – Charlie

回答

2

你只需要加入兩個表。正如你所看到的,表名後面有字母。他們被稱爲ALIAS es(暱稱)的表格。

SELECT a.School 
FROM Snow a 
     INNER JOIN Temp b 
      ON a.School = b.School 
WHERE a.skip = 0 

SQLFiddle Demo

+0

變量a和變量在這裏代表什麼? – Charlie

+0

他們被稱爲'ALIAS'es(*或暱稱*)。它們可以幫助您最大限度地減少查詢,而不用編寫更長的表名,只需使用它們即可。 –

+0

a和b是別名.. http://www.chapter31.com/2008/08/22/mysql-alias-just-like-table-names-are-case-sensitive-on-nix/ –

相關問題