1、需求:编写一条sql,满足以下条件,无论person是否有地址消息,都需要基于上述两表提供的person的一下信息:firstname 、lastname、city、state
表1:person列名 类型
personid int(主键)
firstname varchar
lastname varchar表2:address
列名 类型
addressid int(主键)
personid int
city varchar
state varchar需求:编写一条sql,满足以下条件,无论person是否有地址消息,都需要基于上述两表提供的person的一下信息:firstname 、lastname、city、stateselecta1.firstname,a1.lastname,a2.citya2.state
from(select firatname,lastname,personidfrom person) as a1
left join(selectcity,statepersonidfromaddress
) as a2
on (a1.personid=a2.personid)
2、需求:获取到employee表中第二高的薪水,如果不存在第二高的,那么就返回null
表:employee:
id salary
1 100
2 200
3 300
返回的形式:
secondhighsalary
200需求:获取到employee表中第二高的薪水,如果不存在第二高的,那么就返回null
select ifnull(select distinct salaryfromemployeeorder by salary desclimit 1 offset 1 , null) as secondhighsalary
from employee总结:limit 1 :分页,表示的是展示几条数据
offset 1:偏移量,表示的是跳过第几条数据
ifnull:使用的方式:ifnull(条件,null)表示的是条件满足就执行,不满足就返回null值