MySQL-嵌套查询-先去排序后去重

本文详细介绍了一次使用MySQL进行复杂关联查询的实际案例,包括从多个表(agv、job、job_config)中选取特定字段,应用条件筛选(异常数据不为0),并对结果进行倒序排序及去重处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:MySQL的一次错误使用记录

例:现有表agv,job,job_config
查询
agv表中id,curr_station_code,curr_raw_muxzone_id,crr_reg_fault_code

加上job表中的create_time,start_time,end_time,

再加job_config表中name字段组成的一张数据表。

表中异常数据不为0

并且先倒序去重

代码:

SELECT * FROM(SELECT
	a.id 车号,
	c. NAME 任务名称,
	b.create_time 创始时间,
	b.start_time 开始时间,
	b.end_time 结束时间,
	a.curr_station_code 站点位置,
	a.curr_raw_muxzone_id 管制区,
	a.crr_reg_fault_code 异常
FROM
	agv a,
	job b,
	job_config c
WHERE
	a.id = b.asgn_agv_id
AND c.id = b.job_config_id
AND a.crr_reg_fault_code != 0
ORDER BY
	b.create_time DESC) as t GROUP BY t.`车号`

1、关联查询三张表,得到一张表

SELECT
	a.id 车号,
	c. NAME 任务名称,
	b.create_time 创始时间,
	b.start_time 开始时间,
	b.end_time 结束时间,
	a.curr_station_code 站点位置,
	a.curr_raw_muxzone_id 管制区,
	a.crr_reg_fault_code 异常
FROM
	agv a,
	job b,
	job_config c
WHERE
	a.id = b.asgn_agv_id
AND c.id = b.job_config_id

2、条件(异常数据不为0)

AND a.crr_reg_fault_code != 0

3、倒序

ORDER BY
	b.create_time DESC

4、为子查询起别名

as t

5、去重

GROUP BY t.`车号`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青衫旧路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值