作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在这里,我会尽量简短并切入正题。这些是我的表:
问卷:
user_x_questionnaire:
questionnaire_time
因此,用户想要填写一些问卷。可以为每个用户分配一个或多个要填写的问卷 (user_x_questionnaire)。根据问卷类型(一次性或频繁),每个问卷可以由用户多次填写,因此 questionnaire_time 表存储了每一次的发布日期和截止日期。
我想要的是一个显示用户应该回答的所有当前问卷的查询。这意味着调查问卷的时间应该在发布日期和截止日期之间。我非常接近这个查询的答案,直到我意识到我所有返回的结果都产生相同的发布和截止日期,这不是我想要的。到目前为止,这是我的解决方案。
SELECT * FROM (
SELECT DISTINCT questionnaire.id
, questionnaire.`name`
, user_x_questionnaire.iteration
, completedstate
, questionnaire_time.publishdate
, questionnaire_time.deadline
FROM user_x_questionnaire
, questionnaire_time
, questionnaire
WHERE userid={USERID}
AND user_x_questionnaire.questionnaireid=questionnaire.id
AND questionnaire.`type`='frequent'
AND user_x_questionnaire.questionnaireid=questionnaire_time.questionnaireid
) As result
WHERE '{CURRENT DATE}' BETWEEN publishdate AND deadline;
{USERID} 和 {CURRENT DATE} 将由程序提供。
最佳答案
这应该显示所有活跃的问卷,即使{USER}没有回复:
SELECT q.id, q.`name`, u.iteration, u.completedstate, t.publishdate, t.deadline
FROM questionnaire q
INNER JOIN questionnaire_time t
ON t.questionnaireid = q.id
LEFT JOIN user_x_questionnaire u
ON u.questionnaireid = t.questionnaireid
AND u.userid={USERID}
WHERE q.`type`='frequent'
AND '{CURRENT DATE}' BETWEEN t.publishdate AND t.deadline;
关于mysql - 连接 3 个表以返回每个用户在两个日期之间的问卷(我的挑战性查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13278535/
我是一名优秀的程序员,十分优秀!