sql从最大匹配的另一个表插入数据

问题描述 投票:0回答:1

我想合并 2 张桌子。 一个是带有汽车数据的车牌,另一个是相关的道路登记公里数数据。我希望在道路记录中输入新数据时运行触发器,并更新汽车表中汽车的公里/小时,但始终仅使用最高值。

Nyilvantartas_auto:

自动_id 类型 km_ora_allas
AAA111 黑色 10
BBB222 白色 20
CCC333 黄色 30

Nyilvantartas_utnyilvantarto:

自动_id km_ora_allas 日期
AAA111 10.000 2023.02.01
BBB222 5.000 2023.03.01
CCC333 3.000 2023.05.01
AAA111 13.000 2023.04.01
BBB222 8.000 2023.07.01
CCC333 5.000 2023.08.01

预先感谢您的帮助。

UPDATE Nyilvantartas_auto
SET Nyilvantartas_auto.km_ora_allas = MAX(Nyilvantartas_utnyilvantarto.km_ora_allas)
FROM Nyilvantartas_auto
INNER JOIN Nyilvantartas_utnyilvantarto
ON (Nyilvantartas_utnyilvantarto.auto_id = Nyilvantartas_auto.auto_id)
sql phpmyadmin
1个回答
0
投票

车表里没有

km_ora_allas
。一件事是在道路表中执行插入时更新汽车表;另一种是添加一列。

无论如何,解决第一个问题的最简单方法(并且可能表现更好,因为您不必加入表)是在代码中(而不是在数据库中)包含一些逻辑,当您在

上执行插入时road_registration_table
您还更新了
car_table
。更新查询变得更简单:

UPDATE car_table
SET velocity = MAX(velocity, new_value)
WHERE auto_id = 1234

第二题可以这样完成。更改表格以添加列

ALTER TABLE car_table
ADD velocity int(required_size) null

然后更新

car_table
类似于您编写的查询(但语法 取决于您正在使用的特定 DBMS )。

© www.soinside.com 2019 - 2024. All rights reserved.