个人工作记录---工作中遇到的sql查询语句解析

时间:2023-03-08 17:01:28

在工作中写了人生的第一个查询语句,虽然是在原有基础上改的,但仍然学到了不少知识

代码:

select distinct m.id,
(select z.jianc from model_zuzjg z where z.id=m.huoz_id) as huoz,
(select mingc from model_pinz where id=m.meiz_id) as meiz,
ifnull((select kc.shul from yw_kuczt kc where kc.meiduo_id=m.id ),0) as shul,
m.duom,ll.longitude,ll.latitude ,
ifnull((select mb.shouc_beiz from model_tongd_bzxx mb where mb.tongd_id=m.tongd_id and mb.huoz_id=m.huoz_id and mb.meiz_id=m.meiz_id and mb.user_id='1'),'') as shouc_beiz,
ifnull((select mb.shouc_status from model_tongd_bzxx mb where mb.tongd_id=m.tongd_id and mb.huoz_id=m.huoz_id and mb.meiz_id=m.meiz_id and mb.user_id='1'),0) as shouc_status,
m.huoz_id, m.meiz_id from model_meidxx m inner join (select t.id,t.daim,t.tongdmc from model_tongd t,
(select daim from model_jicss where (shangjdm='GXTSG' OR daim='GXTSG') AND fenl='B') j
where t.suosjcss=j.daim) td on m.tongd_id=td.id
inner join
(select l.duo_id,l.longitude,l.latitude from model_meid_lbxx l group by l.duo_id) ll
on m.id=ll.duo_id where m.state=1

解读(备忘):

1.子查询是可以作为一个临时参数来加入到select from where中的任何阶段的

2.as可以为表临时赋予一个别名或是表名 别名这样写

3.ifnull((),‘’)当查出来的数据不存在为null时,可以赋予一个其他值

4.distinct 去重取一次

其他:model_meidxx 是主表,所有的数据无论来自于什么表都需要以其为核心关联上,而最终的where则表示核心的查询条件。