2011-01-18 5 views
2

最後の3つのフィールドをこのテーブルに追加しましたが、空白です。すべてのレコードには、トップ3が入力されています。テーブル定義は、UPDATEとSELECTを使用してテーブルの多くのレコードとカラムを更新するMySQL

mysql> describe 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 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; 

は、今私はちょうどそのクエリから算出された2つのフィールドを取り、nh3tk、スペクトルの試合で右のフィールドにそれらを配置する必要があります。

ご協力いただきありがとうございます。

敬具 ジェームスあなたのクエリでそれを選択しないので、errorについて

答えて

2
UPDATE nh3tk 
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) 

わかりません。

+0

申し訳ありませんが、これは動作しません。 。次のエラーが表示されます。エラー1064(42000):SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックしてください。正しい構文については、JOIN nh3lw ON nh3lw.spectra = nh3tk.spectra 4行目をご利用ください。 – James

+0

異なるブランドのSQLでは、異なるUPDATE構文を使用しています。 QuassnoiがMSSQLを使用しているようです。 –

+0

@James:申し訳ありませんが、句の順序を混乱させました。今すぐお試しください。 – Quassnoi

0

私は、最後にこの作業を行うために、これを使用して終了し、すべてのあなたの答えのための

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); 

おかげで、これを見て時間を割いて、 ジェームズ

関連する問題