count时不计算a,b,c字段数据相同的重复的记录
假如查询得到如下数据:
select a,b,c from table
a | b | c |
1 | 1 | 0 |
2 | 2 | 0 |
2 | 2 | 0 |
现在执行select a,b,count(c) from table
a | b | c |
1 | 1 | 1 |
2 | 2 | 2 |
若执行select a,b,count (distinct c) from table
a | b | c |
1 | 1 | 1 |
2 | 2 | 1 |
注意,在count 函数中加了一个distinct,使相同的记录只被count一次。
INNER JOIN的操作
假如有3个表,table1,table2,table3,表中数据如下:
a | b | c |
1 | 1 | 1 |
1 | 1 | 1 |
2 | 2 | 2 |
1 | 3 | 3 |
2 | 4 | 4 |
5 | 5 | 5 |
a | b | c |
1 | 1 | 1 |
2 | 1 | 1 |
3 | 1 | 1 |
4 | 1 | 1 |
5 | 1 | 1 |
a | b |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
执行如下语句:
select database.table1.c,database.table2.b,database.table2.c,database.table3.b
from (database.table1 inner join database.table2 on database.table1.stn = database.table2.stn)
inner join database.table1 on database.table1.ka = database.table3.ka
得到结果如下:
table1.c | table2.b | table2.c | table3.b |
1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 |
3 | 1 | 1 | 1 |
2 | 1 | 1 | 2 |
4 | 1 | 1 | 2 |
执行的是
table1.stn = table2.stn 而且 table1.ka = table3.ka,两个条件同时满足。