2012-10-27 50 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/ –

相关问题