嵌套SQL语句,但在内部语句中重用out变量?
我正在尝试在SQLMySQL中做一些我不确定是否可能的事情。该场景与用户调查有关,我正在尝试创建一个调查,在该调查中,问题在一段时间后被重新询问。今天我的SQL看起来像这样,我不得不在内部select语句中硬编码问题id,因为我不知道还有其他方法嵌套SQL语句,但在内部语句中重用out变量?,sql,select,nested,aliases,Sql,Select,Nested,Aliases,我正在尝试在SQLMySQL中做一些我不确定是否可能的事情。该场景与用户调查有关,我正在尝试创建一个调查,在该调查中,问题在一段时间后被重新询问。今天我的SQL看起来像这样,我不得不在内部select语句中硬编码问题id,因为我不知道还有其他方法 SELECT surveyquestions.priority, surveyquestions.id, surveyquestions.question, surveyquestions.html FROM surveyquestions
SELECT surveyquestions.priority, surveyquestions.id, surveyquestions.question, surveyquestions.html FROM surveyquestions
LEFT JOIN surveyanswers ON surveyquestions.id = surveyanswers.id AND surveyanswers.uuid = 22946252362612764
WHERE (surveyanswers.id IS null OR
(SELECT datestamp FROM surveyanswers WHERE id = 22 ORDER BY datestamp DESC LIMIT 1) <
DATE_SUB(NOW(),INTERVAL 1 HOUR))
AND surveyquestions.priority != 999
AND surveyquestions.brid = 'testprod2'
ORDER BY surveyquestions.priority LIMIT 1;
我想做的是,以某种方式,使用外部SELECT中的surveyquestion.id作为内部SELECT where语句的一部分,查看其中id=22是硬编码位
编辑:陈述的更多信息/背景
-优先级是问题出现的顺序
-优先级999表示不显示问题
-brid是与问题相关的品牌/产品
-uuid是回答问题的用户的唯一标识符为了在表名相同时执行此操作,需要为表提供别名:
SELECT surveyquestions.priority, surveyquestions.id, surveyquestions.question, surveyquestions.html FROM surveyquestions
LEFT JOIN surveyanswers oa ON surveyquestions.id = oa.id AND oa.uuid = 22946252362612764
WHERE (surveyanswers.id IS null OR
(SELECT datestamp FROM surveyanswers ia WHERE ia.id = oa.id ORDER BY datestamp DESC LIMIT 1) <
DATE_SUB(NOW(),INTERVAL 1 HOUR))
AND surveyquestions.priority != 999
AND surveyquestions.brid = 'testprod2'
ORDER BY surveyquestions.priority LIMIT 1;
我使用oa表示外部答案,ia表示内部答案。为了在表名相同时执行此操作,需要为表指定别名:
SELECT surveyquestions.priority, surveyquestions.id, surveyquestions.question, surveyquestions.html FROM surveyquestions
LEFT JOIN surveyanswers oa ON surveyquestions.id = oa.id AND oa.uuid = 22946252362612764
WHERE (surveyanswers.id IS null OR
(SELECT datestamp FROM surveyanswers ia WHERE ia.id = oa.id ORDER BY datestamp DESC LIMIT 1) <
DATE_SUB(NOW(),INTERVAL 1 HOUR))
AND surveyquestions.priority != 999
AND surveyquestions.brid = 'testprod2'
ORDER BY surveyquestions.priority LIMIT 1;
我用oa表示外部答案,用ia表示内部答案