on和where使用的差别

来源:2-3 联表查询

蟹黄豆沙包

2022-03-27 14:45:14

spacer.gifhttps://img.mukewang.com/climg/624007af0942b6c109390656.jpg
上面这题想请问一下,求平均进度大于60%的视频


SELECT T2.tag,
CONCAT(ROUND(AVG(IF(TIMESTAMPDIFF(SECOND,start_time,end_time)>=duration,1,
                    TIMESTAMPDIFF(SECOND,start_time,end_time)/duration
                   ))*100,2),"%")
AS avg_play_progress
FROM tb_user_video_log AS T1
LEFT JOIN tb_video_info AS T2
ON T1.video_id=T2.video_id
GROUP BY tag
HAVING REPLACE(avg_play_progress,'%','') > 60
ORDER BY avg_play_progress desc

为什么要用 ON T1.video_id=T2.video_id ,where就没法运行


写回答

1回答

DeltaF

2022-03-30

join是表连接,where是条件判断,但如果是比较复杂的sql查询或者是多次连续调用的话就有区别了

where是擅长条件判断,join是擅长表与表之间的联合查询,在多表查询的时候join➕on

0

人人都能学的数据分析

从0开始学数据分析,未来互联网各岗位的标配技能,产品经理、运营经理、技术人员人人必备,人人必会的的实用技能

1416 学习 · 1163 问题

查看课程