【发布时间】:2018-11-28 16:28:11
【问题描述】:
在 MySQL 中具有以下数据库结构:
表 1:订单 带属性
- ID(主键)
- 交货日期
- CUSTOMER_ID
- RESTAURANT_ID
- ORDER_VALUE
表 2:客户 带属性
- ID(主键)
- 姓名
- 登录
表 3:餐厅
- ID(主键)
- 姓名
- 城市
我想生成一个数据库查询,在其中选择客户 ID、登录名、交货日期、序列号以及从最后一个订单到倒数第二个订单的天数。
我在使用内连接和生成查询的最后两列时遇到问题:
- 序列:每个用户可能点了任意数量的菜,如果是第三次点,我想显示一个数字,我应该可以从他的 customer_ID 和 Order_ID 中得到它
- 最后一个订单的 DateDiff:我在获取最后一个订单和倒数第二个订单以及执行 dateDIFF 并填充列时遇到问题
到目前为止,我已经构建了以下查询:
SELECT customer_id,
login,
delivery_date,
sequence,
Datediff(second_to_last_order, last_order)
FROM order AS t1
INNER JOIN customer AS t2
ON t1.customer_id = t2.id
INNER JOIN restaurant AS t3
ON t1.restaurant_id = t3.id;
但这显然不完整,但我被卡住了,有什么建议吗?
【问题讨论】:
-
你的 MySQL 服务器版本是多少?此外,请提供相关且最少的样本数据,以展示您的要求,以及相应的预期输出。请阅读此链接:meta.stackoverflow.com/q/333952/2469308
-
我之所以询问 MySQL 服务器版本是因为它看起来 像
LEAD/LAG窗口函数问题。这些已在 MySQL 8+ 及更高版本中提供。所以,如果你能升级到最新版本,那就太好了!
标签: mysql