数据库查询语句混合进阶版

 首先实战才是检验的标准,先找个织梦数据库使用下这条语句

SELECT a.*,t.typedir,t.typename,t.isdefault,t.defaultname,t.namerule,t.namerule2,t.ispart, t.moresite,t.siteurl,t.sitepath FROM `dede_archives` as a JOIN `dede_arctype` AS t ON a.typeid=t.id WHERE (typeid IN ("1,2,3,4") OR typeid2 IN ("1,2,3,4"))  AND arcrank <> '-2' ORDER BY sortrank DESC LIMIT 1,6

 这是一句混合查询的语句 联查2表 a和t

SELECT   查询

我们知道数据库查询语句原理是

select 字段 from 表 where 条件!

那么我们来解刨上面语句!

a.*  就是第一个表的全部数据

t.type....等等 就是第二个表的指定字段!

FROM `dede_archives` as a JOIN `dede_arctype` as t  分别a 和T对应的表

ON a.typeid=t.id  就是2个表的对应点!哪个对应哪个! 这里是a的typeid对应的是t的id的字段!

WHERE (typeid IN ("1,2,3,4") OR typeid2 IN ("1,2,3,4")) AND arcrank <> '-2'  条件,

这里着重说下sql的流程的从左至右的,如果上面你不打括号

WHERE typeid IN ("1,2,3,4") OR typeid2 IN ("1,2,3,4") AND arcrank <> '-2'

会导致,2-3*4  

WHERE (typeid IN ("1,2,3,4") OR typeid2 IN ("1,2,3,4")) AND arcrank <> '-2'

(2-3)*4

这两个数学总看得懂了吧! 差不多那意思!

ORDER BY sortrank DESC LIMIT 1,6

后面的就是用sortrank 的DESC从大往下排列!

来自 前面6条记录 


写的好!

微信扫一扫赏大洋