首先实战才是检验的标准,先找个织梦数据库使用下这条语句
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条记录