mysql8.0,一个订单有多个审核记录,要求关联查询订单对应最近一次的审核记录的订单列表
时间: 2023-12-10 15:38:41 浏览: 24
可以使用子查询和MAX函数来实现查询订单对应最近一次审核记录的订单列表,具体SQL语句如下:
```
SELECT *
FROM orders o
INNER JOIN approval_records a ON o.order_id = a.order_id
WHERE a.approval_time = (
SELECT MAX(approval_time)
FROM approval_records
WHERE order_id = o.order_id
);
```
上述SQL语句中,使用了子查询来获取每个订单对应最近一次审核记录的审核时间,然后在主查询中通过关联条件筛选出与该审核时间匹配的订单记录。其中,orders表示订单表,approval_records表示审核记录表,order_id和approval_time分别为订单和审核记录的关联字段。
相关问题
mysql 单表查询场景 有一个主订单对应多个子订单 分组查询主订单
如果您想要查询每个主订单及其对应的子订单数量,可以使用如下SQL语句:
```
SELECT 主订单ID, COUNT(*) AS 子订单数量
FROM 订单表
GROUP BY 主订单ID;
```
其中,订单表是指存储订单信息的数据表,主订单ID是指存储主订单ID的字段名。这个查询语句使用了COUNT函数和GROUP BY子句来对每个主订单进行分组,并计算每个主订单对应的子订单数量。查询结果中,每一行显示一个主订单ID及其对应的子订单数量。
mysql怎么查询一个人多条记录,分别在不同的表中
你可以使用 MySQL 中的 JOIN 操作来查询一个人在不同表中的多条记录。假设你有两个表,一个是 "users" 表,包含人员信息,另一个是 "orders" 表,包含订单信息。你可以通过以下查询来获取一个人在这两个表中的多条记录:
```sql
SELECT users.name, orders.order_id, orders.order_date
FROM users
JOIN orders ON users.user_id = orders.user_id
WHERE users.name = '某个人的姓名';
```
这个查询使用了 INNER JOIN 操作符,通过将 "users" 表和 "orders" 表连接在一起,通过 "user_id" 列进行匹配。然后,使用 WHERE 子句来筛选出指定人员的记录。你可以根据实际需求修改表名、列名以及筛选条件。