gpt4 book ai didi

mysql - 这个复杂的 mysql 查询的更好选择

转载 作者:行者123 更新时间:2023-11-29 06:41:53 28 4
gpt4 key购买 nike

我有两个表

1.fw_respondent_answers
2.fw_question_options

结构是:

fw_respondent_answers

id invitationid qdetailid optionid
1 2 1 1
2 2 2 2
3 2 3 3
4 3 1 4
5 3 2 5
6 3 3 6

fw_question_options:

id optionname qdetailid
1 india 1
2 teacher 2
3 ok 3
4 france 1
5 assistane 2
6 good 3

期望的输出:

invitationid     country profession answer
2 india teacher ok
3 france assistant good

说明:我想获取与特定 invitationid 关联的 optionname 对应于 qdetailid选项IDoptionidfw_question_options(id)的主键。

我尝试过的:

SELECT distinct fra.`invitationid` ,fo.optionname as country,
fo1.optionname as profession,fo2.optionname as nps
FROM `fw_respondent_answers` fra,fw_question_options fo,
`fw_respondent_answers` fra1,fw_question_options fo1,
`fw_respondent_answers` fra2,fw_question_options fo2
WHERE fra.`optionid`=fo.id and fra.`qdetailid`=2
and fra1.`optionid`=fo1.id and fra1.`qdetailid`=1
and fra2.`optionid`=fo2.id and fra2.`qdetailid`=3

问题:我上面的查询很慢。我只想知道除了上面的查询还有其他更好的选择吗?

提前致谢。

最佳答案

试试这个:

SELECT a.invitationid, 
MAX(IF(a.qdetailid = 1, b.optionname, '')) AS country,
MAX(IF(a.qdetailid = 2, b.optionname, '')) AS profession,
MAX(IF(a.qdetailid = 3, b.optionname, '')) AS nps
FROM fw_respondent_answers a
INNER JOIN fw_question_options b ON a.optionid = b.id
GROUP BY a.invitationid

关于mysql - 这个复杂的 mysql 查询的更好选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20993275/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com