0
我目前有4个表,我查询列出订单状态。 表与相关领域像这样在左连接查询中获取每个时间戳的最新记录
+--------------+ +------------+ +----------+ +----------+
|Orders | | Customers | | Users | | Status |
+--------------+ +------------+ +----------+ +----------+
| id | | id | | id | | id |
| customer_id | | name | | name | | order_id |
| rep_id | +------------+ +----------+ | status |
+--------------+ | comments |
| date |Timestamp
| tech_id |
+----------+
使用下面的SQL我可以显示订单和状态的列表。
SELECT
Orders.id AS orderid,
Customers.name AS CLIENT,
Users.name AS rep,
Status.status
FROM
Orders
LEFT JOIN
Customers ON Orders.customer_id = Customers.id
LEFT JOIN
Users ON Orders.rep_id = Users.id
LEFT JOIN
Status ON Orders.id = Status.order_id
我得到了这样的东西。
+---------+----------+-------+--------+
| orderid | CLIENT | rep | status |
+---------+----------+-------+--------+
| 1 | Client 1 | Rep 1 | 1 |
| 2 | Client 2 | Rep 2 | 1 |
| 3 | Client 3 | Rep 1 | 1 |
| 4 | Client 4 | Rep 2 | 1 |
| 6 | Client 6 | Rep 4 | 1 |
| 1 | Client 1 | Rep 3 | 4 |
| 6 | Client 6 | Rep 4 | 4 |
+---------+----------+-------+--------+
我需要根据状态表上最近的日期得到一个每个orderid的记录。我觉得我很亲密,但无法弄清楚。
见https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-似乎对我来说是一个非常简单的SQL查询 – Strawberry
这个问题已经被回答了很多次。查看[tag:most-n-per-group]标签。 –