关于sql查询的 一些问题

在写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
哈士奇WWW
浏览 404回答 2
2回答

慕侠2389804

一般原则是尽量少在循环中操作SQL,针对你第一个给出的DEMO可以使用SELECTWHEREIN整合成一次查询。

ibeautiful

像这种查询数据量不是太大的话可以将数据合并到一个表中在去查询。一般来说:$data=SELECT...;foreach($dataas&$item)$item['sub]=SELECT....WHERE$item['xx']....;你既然这么做了,这个for相信也不是太多,太耗时,如果在加上建了相关索引的话,效率上不存在问题,目测100ms内。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript