问题:
查数据是一件很痛苦的事,尤其是多张表链接查询更是惨不忍睹
各种条件拼接,各种查询数据不对,看着写了半天的sql,感觉很完美,没毛病啊。。。
分析:
http://blog.jobbole.com/55086/
今天看了一篇文章,醍醐灌顶,自己之前理解的sql,概念和原理差的很多,皮毛都算不上,而且还误入歧途
之前觉得,sql一步步执行,条件写对了,一步一步过滤,现在看来
TOO YOUNG TOO SIMPLE
心得:
1.sql是一种声明式语言,它不在乎你步骤写的有多好,过程多美丽,
它只是,你给我条件,声明你要的结果模型,告诉我源数据表,可以了,我自己跑,还你个结果
2.sql执行是无序的,它不会按照你写的步骤一步一步执行,
表连接确定数据,以条件挑选数据,以select确定结果映射模型,执行,得到你要的结果,完啦。。。
sql最先执行的是from,条件限定取出结果源,最后才是执行select映射结果模型
所以select取列起别名的是不能当条件的,因为还没有执行到这一步
3.sql的执行是基于表的,不是基于字段的,这个我感觉我理解的不是很好,理解的不到位
4.维度是什么?可以看成横向纵向维度,横向来看是列,纵向来看是每列记录
分为横纵轴,看横纵轴的点就知道了