我的想法是结合两个子查询。它们几乎相同 - 子查询,只是第二个具有+1 WHERE条件。我想获得两个结果,并且它们之间返回MIN starttime然后将它分组,以便根据最小开始时间,每月的每一天必须只有一行。但是看起来语法不正确,给出错误 {SELECT B.id FROM 这个地方;
SELECT MIN(starttime) starttime,MIN(id) id FROM AG GROUP BY starttime
{
SELECT B.id FROM
(
SELECT DATE(starttime) date_starttime,MIN(starttime) starttime
FROM calendar
WHERE starttime between '2012-02-00 00:00:00' and '2012-03-00 00:00:00'
GROUP BY DATE(starttime)
) A LEFT JOIN calendar B USING (starttime),
SELECT D.id FROM
(
SELECT DATE(starttime) date_starttime,MIN(starttime) starttime
FROM calendar
WHERE repeat != 0 AND starttime between '2012-02-00 00:00:00' and '2012-03-00 00:00:00'
GROUP BY DATE(starttime)
) AD LEFT JOIN calendar BD USING (starttime)
}
答案 0 :(得分:0)
您正在尝试在MySQL上下文中使用PHP构造(花括号) - MySQL并不理解大括号括号,因此在查询中会出现错误。
你可能会从PHP程序改编这个,我猜?在PHP中,PHP解释器解析大括号内的表达式,并在将查询交给MySQL之前将其替换为MySQL查询。