SQL Select语句完整的执行顺序:
1、from子句组装来自不同数据源的数据; (先join在on)
2、where子句基于指定的条件对记录行进行筛选;
3、group by子句将数据划分为多个分组;
4、使用聚集函数进行计算;
5、使用having子句筛选分组;
6、计算所有的表达式;
7、select 的字段;
8、使用order by对结果集进行排序。
查询
CHAR_LENGTH方法
AS语句使用后可以 在后续的选择中使用
举例
# Write your MySQL query statement below
select
DISTINCT author_id as id
FROM
Views
WHERE
author_id = viewer_id
order by id
连接
join
inner join:理解为“有效连接”,两张表中都有的数据才会显示
left join:理解为“有左显示”,比如on a.field=b.field,则显示a表中存在的全部数据及a、b中都有的数据,a中有、b中没有的数据以null显示
right join:理解为“有右显示”,比如on a.field=b.field,则显示b表中存在的全部数据及a、b中都有的数据,b中有、a中没有的数据以null显示
full join:理解为“全连接”,两张表中所有数据都显示,实际就是inner +(left-inner)+(right-inner)
datediff函数
编写解决方案,找出与之前(昨天的)日期相比温度更高的所有日期的 id 。
select w2.id
from Weather w1,Weather w2
where datediff(w2.recordDate,w1.recordDate) =1 and w2.Temperature > w1.Temperature