左连接
左连接的定义:是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种
t1 |
---|
tid |
tname |
tclass |
s1 |
---|
sname |
sname |
scalss |
c1 |
---|
tid |
classname |
求学生对应的课程
select s1.sid,cl.classname from
(select sid,tid from s1 left join t1 on s1.sclass=t1.tclass) a1
left join c1 on a1.tid = c1.tid
on和where的区别
MySQL中 where和on的区别:
·on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录
·where条件是在临时表生成好后,再对临时表进行过滤条件,这时已经没有 left join 的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
·如果查询语句中同时存在where和on,那么where一定要在on的后面,否则会报错。
力扣1757可回收且低脂的产品
select product_id from products where `low_fats` ='Y' and recyclable ='Y';
case when
力扣1873 计算特殊奖金
select
employee_id,
case when employee_id % 2 = 1 and left(name, 1) <> 'M' then salary else 0 end as bonus
from Employees
order by employee_id asc;
case when 语句
<>
取name的第一个字母
order by asc