MYSQL之间没有';不包括最长日期
首先,我对格式很抱歉。这是我第一次,我真的不知道如何在这里展示桌子 这是我的语法:MYSQL之间没有';不包括最长日期,mysql,sql,date,between,Mysql,Sql,Date,Between,首先,我对格式很抱歉。这是我第一次,我真的不知道如何在这里展示桌子 这是我的语法: SELECT order.id, order.begin, order.end, report.id, DATE_FORMAT( report.add_date, '%Y-%m-%d' ) AS report_add_date, sums.id, sums.qty FROM order, report, sums WHERE (report.add_date BETWEEN order.begin A
SELECT order.id, order.begin, order.end, report.id,
DATE_FORMAT( report.add_date, '%Y-%m-%d' ) AS report_add_date, sums.id, sums.qty
FROM order, report, sums
WHERE (report.add_date BETWEEN order.begin AND order.end)
AND (report.id = sums.id)
ORDER BY order.id ASC
它给出了以下结果:
order.id | order.begin | order.end | report.id | report.add_date | sums.id | sums.qty
255 | 2013-10-21 | 2013-10-22 | 390 | 2013-10-21 | 390 | 250
256 | 2013-10-22 | 2013-10-23 | 393 | 2013-10-22 | 393 | 385
最终结果应如下所示:
order.id | order.begin | order.end | report.id | report.add_date | sums.id | sums.qty
255 | 2013-10-21 | 2013-10-22 | 390 | 2013-10-21 | 390 | 250
255 | 2013-10-21 | 2013-10-22 | 393 | 2013-10-22 | 393 | 385
256 | 2013-10-22 | 2013-10-23 | 393 | 2013-10-22 | 393 | 385
希望您能看到,我正在尝试获取所有order.id的所有sums.qty,其中report.add\u date介于order.begin和order.end date之间
共有3个表格:订单、报告和金额。
订单包含范围日期(开始-结束)。报告包含日期(添加日期)。Sums包含数量,它与按id报告相关
Order.id 255应获得2013-10-21和2013-10-22之间日期的所有SUMMS.qty
Order.id 256应获取2013-10-22和2013-10-23之间日期的所有SUMMS.qty
第一个没有得到2013-10-22日期的sums.qty,因为这一个转到了后者
据我所知,它不重复行,所以它只显示每一行。因此,当下一个order.id从上一个order.id的结束日期开始时,它停止将report.id分配给上一个order.id
我做错了什么?提前谢谢你 我猜
add_date
是一个DATETIME
,在之间的标准中,您没有将其转换为日期。日期的时间为0,因此,尽管介于
之间的时间包含在内,但如果附加了非零时间部分,则不会包含相同的日期
我还建议切换到显式连接,因为隐式连接已被弃用多年。当然,它确实有效:)谢谢!我对显式连接知之甚少(需要重新教育自己)。您能在这一次将此连接转换为显式连接吗?干杯