Mysql 基于具有一周范围数据的两个日期列的子查询

Mysql 基于具有一周范围数据的两个日期列的子查询,mysql,join,subquery,Mysql,Join,Subquery,我在表格中有两个日期栏,一个是发布问题的日期,另一个是回答问题的日期。例如,每当一个新问题被问到时,它的日期存储在q_date列中,每当有人回答这个问题时,它的日期存储在q_date列中。 现在我希望在一周内提出所有问题,并在一周内回答所有问题。 任何人都可以使用join或subquery向我解释一个查询吗?您可以尝试以下查询: SELECT * FROM yourTable WHERE q_date >= DATE(NOW()) - INTERVAL 7 DAY OR a

我在表格中有两个日期栏,一个是发布问题的日期,另一个是回答问题的日期。例如,每当一个新问题被问到时,它的日期存储在q_date列中,每当有人回答这个问题时,它的日期存储在q_date列中。 现在我希望在一周内提出所有问题,并在一周内回答所有问题。
任何人都可以使用join或subquery向我解释一个查询吗?您可以尝试以下查询:

SELECT *
FROM yourTable
WHERE
    q_date >= DATE(NOW()) - INTERVAL 7 DAY OR
    a_date >= DATE(NOW()) - INTERVAL 7 DAY

这将返回与过去7天内发生的问题或答案相对应的所有记录。

您可以使用如下查询:

 Select * from q_ans where DATEDIFF(WEEK,q_ans.q_date,q_ans.a_date) = 1

这将给出回答日期在问题日期一周范围内的所有记录,您需要为BEVERY子句添加条件。你可以试试

WHERE q_ans.a_date BETWEEN date_sub( NOW(), INTERVAL 1 WEEK) AND NOW()

到目前为止你试过什么吗?您尝试过的一些sql查询不起作用!你能表现出一些努力吗?是的,这是我用过的问题。从表q ans中选择不同的ans id、q ans.a_日期,其中q ans.a_日期介于现在的日期、间隔1周和q_ans.type='a'和q_ans.live_QUEST=1之间,q_ans.a_日期从qa_发布q_问题中选择q_ques.q_id,其中q_ques.type='q_顺序由q_ans.a_日期描述。当我现在删除此q ans.a_日期介于现在的日期之间时,间隔1周的表单查询我得到了完美的结果。是@Vandita这是我使用的查询。从表q ans中选择不同的ans id、q ans.a_日期,其中q ans.a_日期介于现在的日期、间隔1周和q_ans.type='a'和q_ans.live_QUEST=1之间,q_ans.a_日期从qa_发布q_问题中选择q_ques.q_id,其中q_ques.type='q_顺序由q_ans.a_日期描述。当我现在删除此q ans.a_日期介于现在的日期之间时,间隔1周的表单查询我得到了完美的结果。@TimBiegeleisen Biegeleeisen您能解释一下您希望看到的效果吗?我应该进一步解释我的问题吗?DATEDIFF不接受三个参数。它只接受两个日期作为参数。