Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL更新连接Where子句;phpmyadmin_Mysql_Sql_Phpmyadmin - Fatal编程技术网

Mysql SQL更新连接Where子句;phpmyadmin

Mysql SQL更新连接Where子句;phpmyadmin,mysql,sql,phpmyadmin,Mysql,Sql,Phpmyadmin,我有一个关于SQL连接的问题。我想更新一个在程序中运行的表格,以便根据不同账户的价格发展(例如煤炭、皮革等的价格发展)进行价值计算。在当前版本中,这些帐户大约有3000个,具有ID、唯一的GP编号和每年的值。问题是,随着GP新版本的发布,大约有900个帐户被删除。但是,程序必须能够使用这些值进行进一步计算,因为计算分配给ID而不是GP值。我想更新2015年、2016年和2017年的GP值……但我不知道如何在不拍摄ID的情况下进行更新(未更新且有计算的值将得到一般价格发展,但此更新可以忽略) 第一

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

第一个表如下所示(树:gps.gps\u alt):

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

我现在想加入201420152016和2017年的表,其中gps_alt.numer=gps_new.numer。我已经尝试了以下代码:

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;
希望有人能帮助我,我不知道为什么这样不行……

我找到了解决办法

UPDATE  gps_alt a
        INNER JOIN gps_neu b
            ON a.Nummer = b.Nummer
SET     a.2014= b.2014
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