为了账号安全,请及时绑定邮箱和手机立即绑定

关于sql查询的 一些问题

关于sql查询的 一些问题

哈士奇WWW 2019-04-07 11:18:29
在写query查询语句时候,经常会想到这个问题:1,foreach循环查询$data=SELECT...;foreach($dataas&$item)$item['sub]=SELECT....WHERE$item['xx']....;2,多表关联join先多表联合查询,然后重新组装数据3,嵌套,子查询那么问题来了考虑效率的时候,一般会如何选择,或者还有其他高效的查询方法;update:可能之前表述有问题,现在我重新又撸了一个示例补充:虚拟了一个场景:比如一个文章列表,而这个列表有分类,标题,简介,作者,发布时间等。而这些数据分别在article,user,category,等多个表里面。这时你需要tree的结构,在view展示。接上面问题:为了得到这个数据,最合适的方法是什么呢?ps:从效率来看1,多层嵌套foreach查询;2,先多表联合查询出结果,然后重新组装需要的数据结构...或者其他先感谢大家的回复,同时欢迎大家说说自己看法。thanks
查看完整描述

2 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

一般原则是尽量少在循环中操作SQL,针对你第一个给出的DEMO可以使用SELECTWHEREIN整合成一次查询。
                            
查看完整回答
反对 回复 2019-04-07
?
ibeautiful

TA贡献1993条经验 获得超5个赞

像这种查询数据量不是太大的话可以将数据合并到一个表中在去查询。
一般来说:
$data=SELECT...;
foreach($dataas&$item)
$item['sub]=SELECT....WHERE$item['xx']....;
你既然这么做了,这个for相信也不是太多,太耗时,如果在加上建了相关索引的话,效率上不存在问题,目测100ms内。
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 403 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信