gpt4 book ai didi

mysql - SQL 更新连接与Where 子句; phpmyadmin

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

我有一个关于 SQL 连接的问题。我想更新一个在程序中运行的表格,用于根据不同账户的价格发展(例如煤炭、皮革等的价格发展)进行值(value)计算。在当前版本中,大约有 3000 个帐户,每个帐户都有 ID、唯一的 GP 编号和每年的值。问题是,随着新版 GP 值的发布,大约 900 个帐户已被删除。但是,程序必须能够使用这些值进行进一步计算,因为计算已分配给 ID 而不是 GP 值。我想更新 2015 年、2016 年和 2017 年的 GP 值...但是我不知道如何在不拍摄 ID 的情况下做到这一点(未更新且有计算的值将简单地获得一般价格正在开发中,不过这个更新可以忽略)

第一个表如下所示(树:gps.gps_alt):

INSERT INTO `gps_alt` (`id`, `Nummer`, `Beschreibung`, `Basisjahr`, `depricated`, `1949`, `1950`, `1951`, `1952`, `1953`, `1954`, `1955`, `1956`, `1957`, `1958`, `1959`, `1960`, `1961`, `1962`, `1963`, `1964`, `1965`, `1966`, `1967`, `1968`, `1969`, `1970`, `1971`, `1972`, `1973`, `1974`, `1975`, `1976`, `1977`, `1978`, `1979`, `1980`, `1981`, `1982`, `1983`, `1984`, `1985`, `1986`, `1987`, `1988`, `1989`, `1990`, `1991`, `1992`, `1993`, `1994`, `1995`, `1996`, `1997`, `1998`, `1999`, `2000`, `2001`, `2002`, `2003`, `2004`, `2005`, `2006`, `2007`, `2008`, `2009`, `2010`, `2011`, `2012`, `2013`, `2014`, `2015`, `2016`, `2017`, `2018`, `2019`, `created_at`, `updated_at`) VALUES 
(1, 'GP09-05', 'Kohle', 0, 0, '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '100.0', '109.9', '113.0', '114.1', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(2, 'GP09-06', 'Erdöl und Erdgas', 0, 0, '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '26.2', '27.8', '32.9', '31.0', '30.0', '45.5', '57.5', '52.0', '58.8', '55.0', '75.3', '96.4', '89.8', '113.9', '81.3', '100.0', '118.2', '142.2', '143.4', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0000-00-00 00:00:00', '0000-00-00 00:00:00'),

第二个表如下所示(从该表中,应在第一个表的 2014、2015、2016 和 2017 年中输入值。树如下所示:gps.gps_neu):

INSERT INTO `gps_neu` (`Nummer`, `2014`, `2015`, `2016`,`2017`) VALUES 
('GP09-052010', '113', '111.3', '110.7','108'),
('GP09-061010', '130.7', '79.5', '62', '81.1')

我现在想加入 2014、2015、2016 和 2017 年 gps_alt.Nummer = gps_new.Nummer 的表。我已经尝试过以下代码:

SELECT gps_alt.2014,
gps_alt.2015,
gps_alt.2016,
gps_alt.2017
FROM gps.gps_alt
JOIN LEFT gps_neu.2014,
gps_neu.2015,
gps_neu.2016,
gps_neu.2017
ON gps.gps_alt.Nummer = gps.gps_neu.Nummer;
Error message: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LEFT gps_neu.2014, gps_neu.2015, gps_neu.2016, at line 6
update  gps.gps_alt
set gps_alt.2014 = gps_neu.2014 ,
gps_alt.2015 = gps_neu.2015,
gps_alt.2016 = gps_neu.2016,
gps_alt.2017 = gps_neu.2017
FROM gps_alt
INNER JOIN gps_neu
ON gps_alt.Nummer = gps_neu.Nummer;
With this errormassage: 
update gps.gps_alt
set gps_alt.2014 = gps_neu.2014 ,
gps_alt.2015 = gps_neu.2015,
gps_alt.2016 = gps_neu.2016,
gps_alt.2017 = gps_neu.2017
FROM gps_alt
INNER JOIN gps_neu
ON gps_alt.Nummer = gps_neu.Nummer;

希望有人能帮助我,我不知道为什么这不起作用......

最佳答案

我找到了解决方案。

UPDATE  gps_alt a
INNER JOIN gps_neu b
ON a.Nummer = b.Nummer
SET a.2014= b.2014

关于mysql - SQL 更新连接与Where 子句; phpmyadmin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50944069/

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