0

我无法做到这一点,而且我仍在使用连接,所以它可能是错误的。我有 3 个数据表和 1 个“汇总”表,其中充满了我提交的值 id。

我想总结 2 个不同表中的值 ID 列并将它们与当前日期和用户相关联。确实如此,但仅限于昨天?我需要它将查询更改为当天。我尝试将 CURDATE() 放在那里,但显然我做得不对。

SELECT U.user_name, SUM(T.cut_timetotal) AS sum_time, SUM(C.cuts_total) AS sum_cuts, DATE(S.submit_date ) AS date
FROM summary S
JOIN cut_info C ON S.cuts_id = C.cuts_id
JOIN users U ON U.user_id = S.user_id
JOIN timeT ON T.time_id = S.time_id
GROUP BY U.user_name
4

1 回答 1

0

这应该提供您寻求的答案:

SELECT U.user_name, SUM(T.cut_timetotal) AS sum_time, SUM(C.cuts_total) AS sum_cuts, DATE(S.submit_date ) AS date
FROM summary S
JOIN cut_info C ON S.cuts_id = C.cuts_id
JOIN users U ON U.user_id = S.user_id
JOIN timeT ON T.time_id = S.time_id
WHERE S.submit_date BETWEEN CURDATE() AND CURDATE() + INTERVAL 1 DAY
GROUP BY U.user_name

使用

S.submit_date BETWEEN CURDATE() AND CURDATE() + INTERVAL 1 DAY

好于

DATE(S.submit_date) = CURDATE()

因为前者将使用索引(如果找到),而后者则不会。

于 2012-10-17T18:03:16.107 回答