gpt4 book ai didi

mysql - 使用 SQL 中的其他表更新/插入表

转载 作者:行者123 更新时间:2023-11-29 10:30:11 24 4
gpt4 key购买 nike

我在 SQL 方面遇到了一点问题,我使用 MySQL。

我有两个表:

#Table1:抓取

id        address   last_price    m2   date_last_price
======================================================
id_1234 NY 100000 100 2017-11-27
id_5678 Madrid 90000 120 2017-11-27

#Table2:历史价格

id        price        date
===============================
id_1234 100000 2017-11-27
id_5678 90000 2017-11-27
id_1234 120000 2017-11-28
id_5678 90000 2017-11-28
id_1234 115000 2017-11-29
id_5678 95000 2017-11-29

我希望将表 2 中最后一个日期的价格插入/更新到表 1 中。

结果必须如下

#结果

id        address   last_price    m2   date_last_price
======================================================
id_1234 NY 115000 100 2017-11-29
id_5678 Madrid 95000 120 2017-11-29

你能帮我解决这个问题吗?

#Queries 创建此示例

#Table 1

CREATE TABLE IF NOT EXISTS scrape(
id varchar(50),
address varchar(50),
last_price int,
m2 int,
date_last_price date
);

INSERT INTO scrape (id,address,last_price,m2,date_last_price)
VALUES('id_1234','NY',100000,100,'2017-11-27'),
('id_5678','Madrid',90000,120,'2017-11-27');

#Table 2

CREATE TABLE IF NOT EXISTS historic_price(
id varchar(50),
price int,
`date` date
);

INSERT INTO historic_price(id,price,date)
VALUES('id_1234',100000,'2017-11-27'),
('id_5678',90000,'2017-11-27'),
('id_1234',120000,'2017-11-28'),
('id_5678',90000,'2017-11-28'),
('id_1234',115000,'2017-11-29'),
('id_5678',95000,'2017-11-29');

最佳答案

使用 UPDATEJOIN 的另一个解决方案:

UPDATE scrape S
INNER JOIN (
SELECT id, `date`, price
FROM historic_price HP
WHERE `date` = (SELECT MAX(date) FROM historic_price WHERE id = HP.id GROUP BY id)
) A
ON S.id = A.id
SET
S.date_last_price = A.date
,S.last_price = A.price;

关于mysql - 使用 SQL 中的其他表更新/插入表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47549229/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com