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

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

代码:

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则表示核心的查询条件。

posted @ 2016-02-23 18:04  lvyi  阅读(273)  评论(0编辑  收藏  举报