php mysql 嵌套查询_php-使用子查询在mysql中构建嵌套对象

我不确定在mysql中是否可行,但是我正在尝试从查询而不是php构建嵌套对象.我有一个调查结果数据库,我想构建一个对象,其关键是问题,而值是答案的数组/对象.这可能吗?我正在使用这样的东西:

SELECT

ss.*,

(SELECT int_value FROM `SubmittedQuestions` AS su WHERE ss.id = su.submitted_survey_id)

FROM

`SubmittedSurveys` as ss;

我必须在PHP中构建此对象吗?我的问题是我正在用PHP执行所有这些循环,我认为构建对象要花一些时间,而如果我可以在mysql中完成,那我认为这将是一个快速查询.让我知道您对这个问题有何想法.

我正在寻找这样的对象:

调查:{

问题1:[

答案1

答案2],

问题2: [

答案1

答案2]

}

因此,我目前在php中所做的是从一个表中查询所有调查问题,然后使用该对象,遍历并查询每个问题,并从另一张表中获取答案.如果有很多问题,该设计将非常慢,有人可以提出替代方案吗?

解决方法:

您描述自己已经在做的方式可能是最好的.您可以使用JOIN一次性检索所有内容,例如:

SELECT *

FROM surveys s INNER JOIN questions q

ON s.id = q.survey_id

INNER JOIN answers a

ON q.id = a.question_id

WHERE s.id = $submitted_survey_id

您的结果将如下所示:

survey1,question1,answer1

survey1,question1,answer2

survey1,question1,answer3

survey1,question2,answer1

survey1,question2,answer2

survey1,question2,answer3

survey1,question3,answer1

survey1,question3,answer2

survey1,question3,answer3

...

但是您仍然必须编写逻辑以将这些结果分解为合理的数据结构,并且您将从数据库中检索很多重复的数据.

SQL通常不会产生分层结果集,您必须以一种或另一种方式通过应用程序产生那些结果集.

标签:mysql,php

来源: https://codeday.me/bug/20191120/2046550.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值