嵌套SQL语句,但在内部语句中重用out变量?

嵌套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

我正在尝试在SQLMySQL中做一些我不确定是否可能的事情。该场景与用户调查有关,我正在尝试创建一个调查,在该调查中,问题在一段时间后被重新询问。今天我的SQL看起来像这样,我不得不在内部select语句中硬编码问题id,因为我不知道还有其他方法

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表示内部答案