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
MySQL使用UPDATE和SELECT更新表中的许多记录和列_Mysql_Sql Update - Fatal编程技术网

MySQL使用UPDATE和SELECT更新表中的许多记录和列

MySQL使用UPDATE和SELECT更新表中的许多记录和列,mysql,sql-update,Mysql,Sql Update,我已将最后三个字段添加到此表中,但它们是空的。所有记录都填写了前三名。表定义是 mysql>描述nh3tk +-----------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------------+-------------+------+-----+---------+-------+ |

我已将最后三个字段添加到此表中,但它们是空的。所有记录都填写了前三名。表定义是

mysql>描述nh3tk

+-----------------+-------------+------+-----+---------+-------+
| Field           | Type        | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| spectra         | varchar(50) | NO   | PRI | NULL    |       |
| value           | float       | NO   |     | NULL    |       |
| error           | float       | NO   |     | NULL    |       |
| nonthermal_FWHM | double      | YES  |     | NULL    |       |
| sound_speed     | double      | YES  |     | NULL    |       |
+-----------------+-------------+------+-----+---------+-------+
有效的Select查询是

select nh3tk.spectra, 
  pow((pow(2.35*nh3lw.sd_lw,2)-1.38065e-23*8*ln(2)*nh3tk.value/2.82e-26),0.5) as nonthermal_FWHM,
  pow(1.38065e-23*nh3tk.value/(2.33*3.348e-27),0.5) as sound_speed 
from nh3tk 
 left join nh3lw on nh3tk.spectra=nh3lw.spectra;
现在我只需要从该查询中获取两个计算字段,并将它们放在nh3tk中的正确字段中,其中光谱匹配

任何帮助都将不胜感激

致意 詹姆斯


不确定
错误,因为您没有在查询中选择它。

我最后用它来完成这项任务

UPDATE  nh3tk 
LEFT JOIN nh3lw ON nh3lw.spectra = nh3tk.spectra 
SET nonthermal_FWHM = pow((pow(2.35*nh3lw.sd_lw,2)-1.38065e-23*8*ln(2)*nh3tk.value/2.82e-26),0.5),         
    sound_speed = pow(1.38065e-23*nh3tk.value/(2.33*3.348e-27),0.5);
感谢大家的回答,并抽出时间来看看这个,
詹姆斯

对不起,这不管用。我得到以下错误,错误1064(42000):您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第4行“在nh3lw.spectra=nh3tk.spectra上加入nh3lw”附近使用的正确语法。不同品牌的sql使用不同的更新语法,我完全错了,但它看起来像是Quassnoi在使用MSSQL。@詹姆斯:对不起,弄乱了子句顺序。请现在试一试。
UPDATE  nh3tk 
LEFT JOIN nh3lw ON nh3lw.spectra = nh3tk.spectra 
SET nonthermal_FWHM = pow((pow(2.35*nh3lw.sd_lw,2)-1.38065e-23*8*ln(2)*nh3tk.value/2.82e-26),0.5),         
    sound_speed = pow(1.38065e-23*nh3tk.value/(2.33*3.348e-27),0.5);