首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简化多个嵌套MYSQL select查询

简化多个嵌套MYSQL select查询
EN

Stack Overflow用户
提问于 2014-10-25 00:34:24
回答 1查看 80关注 0票数 0

为了只使用一个查询来提取我需要的数据,我很难弄清楚如何嵌套这些SELECT!

这是可行的,但我应该能够在一个查询中完成:

代码语言:javascript
复制
$sql = "SELECT * FROM loads JOIN generators ON gen_key =gen_id ";
$sql.=" WHERE field_id= ".$fieldcode;
$sql.=" ORDER BY load_date DESC,load_time DESC ";
$result=mysqli_query($db_connection,$sql); 
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 
$sql2 = "SELECT * FROM (SELECT * FROM composition WHERE comp_date <=   '".$row[load_date]."'  AND gen_id =".$row[gen_id]." ORDER BY comp_date ASC) as T1 ORDER BY comp_date DESC LIMIT 1";
$result2=mysqli_query($db_connection,$sql2); 
$row2 = mysqli_fetch_array($result2, MYSQLI_ASSOC);
// Output $row[] and $row2[] data
}

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2014-10-25 00:53:06

如果希望最大限度地减少从PHP到SQL的查询,可以使用存储过程。基本上,它们很快就能把你的头脑包围起来。如果你遵循这个主题的快速教程,你很快就会学到的(我刚刚就是这么做的):http://www.mysqltutorial.org/mysql-stored-procedure-tutorial.aspx

在这种情况下,您最终只需使用一个或多个参数从PHP到SQL调用一个过程一次,从而极大地减少了查询。

存储过程在获取数据方面非常出色,就像您的情况一样,但不太擅长执行复杂的逻辑(这不是很好)。

希望能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26552328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档