帝国7多表联合查询 主 副表 推荐信息并优化执行效率


为了优化大数据一般需要考虑很多问题 例如博主的网站是分为四个数据表
news-----news3其中有几十个栏目被分配到这些表中,
本实例要求查出推荐1属性的文章12篇分别从4表中取出并且按时间排列 需要查出12条副表的描叙字段中的内容,与主表进行对应,尽量优化性能。
[e:loop={'select*from((selectid,classid,istop,title,titleurl,titlepic,newstimefromphome_ecms_newswhereisgood=1andispic=1limit3)UnionAll(selectid,classid,istop,title,titleurl,titlepic,newstimefromphome_ecms_news1whereisgood=1andispic=1limit3)UnionAll(selectid,classid,istop,title,titleurl,titlepic,newstimefromphome_ecms_news2whereisgood=1andispic=1limit3)UnionAll(selectid,classid,istop,title,titleurl,titlepic,newstimefromphome_ecms_news3whereisgood=1andispic=1limit3))asAorderbynewstimedesc',0,24,0}]<?php$fb=$empire->fetch1("select*from((selectid,classid,smalltextfromphome_ecms_news_data_1whereid='$bqr[id]'andclassid='$bqr[classid]')UnionAll(selectid,classid,smalltextfromphome_ecms_news1_data_1whereid='$bqr[id]'andclassid='$bqr[classid]')UnionAll(selectid,classid,smalltextfromphome_ecms_news2_data_1whereid='$bqr[id]'andclassid='$bqr[classid]')UnionAll(selectid,classid,smalltextfromphome_ecms_news3_data_1whereid='$bqr[id]'andclassid='$bqr[classid]'))asA");?><liclass="s-ttline"><ahref="<?=$bqsr['titleurl']?>"><divclass="itt-image"><imgsrc="<?=$bqr['mtitlepic']?>"alt="<?=$bqr['title']?>"></div><divclass="itt-content"><h3class="title"><?=$bqr['title']?></h3><pclass="desc"><?=esub($fb[smalltext],100,'...')?></p></div></a></li>[/e:loop]
一开始是遇到过错误
 例如副表中描叙调出来的并非是对应的标题下的内容
后来仔细分析关联字段后得出以上语句 
效果如上图
要提高这条语句在页面中的性能博主将这个片段写入了自定义页面
这样就能在需要的页面区域调用出来而不需要时时访问数据库
大约10分钟刷新一次降低了大数据下访客每次访问时都要查询多次数据库的巨大压力

帝国7的包含自定义页面可以这么写 

<?phpinclude(ECMS_PATH.'/sqcode/good1.html');?>

这样就达到了多表联合查询的目的


来自为知笔记(Wiz)