SQL (MySQL) で何かをしようとしていますが、それが可能かどうかはわかりません。シナリオはユーザー調査を行うことです。私はカーテン期間後に質問が再質問される調査を作成しようとしています。今日の私の 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ステートメントの一部として使用することです(WHERE id = 22はハードコードされたビットです)。
編集: ステートメントの詳細情報/背景
- 優先度は質問が表示される順序です
- 優先度 999 は質問を表示しないことを意味します
- Brid は質問が関連するブランド/製品です
- uuid はその一意の識別子です質問に回答しているユーザー