ms_price
とms_name
の値をservice_type
とservice_amount
のレコードの別のテーブルに挿入しようとしています。テーブルから別のテーブルに値を挿入
ms_pricelist
| ms_priceID | ms_Name | ms_price |
|------------|---------|----------|
| 7894 |Casing | 17.0897 |
| 7895 |Fan | 69.9902 |
記録
| customerID | service_type | service_amount |
|------------|--------------|----------------|
| 1000712 | Casing | 17.2311 |
| 1000712 | Trunion | 189.9900 |
ここに私のコードです。
INSERT INTO records (service_type, service_amount)
SELECT ms_pricelist.ms_name, ms_pricelist.ms_price
FROM records JOIN
ms_pricelist
WHERE records.CustomerNumber='1' AND ms_pricelist.ms_priceID='1'
それは私が何をしたいんが、新しい記録(編集履歴:列)を追加します。レコードテーブルの既存のレコードにUPDATEまたはINSERTする必要があります。
EDIT
私はちょうどSERVICE_TYPEとservice_amount(記録表)から(ms_pricelist表から)ms_nameとms_priceの値を挿入する既存のレコードを更新します。
テーブルが含まれます最終的にレコードのようにするには:(あなたが持っているデータベースがサポートしている場合)あなたはMERGE
声明をしたい
| customerID | service_type | service_amount |
|------------|--------------|----------------|
| 1000712 | Casing | 17.0897 | <--Note: updated price
| 1000712 | Trunion | 189.9900 |
| 1000712 | Fan | 69.9902 | <--Note: new row
使用しているデータベースであなたの質問にタグを付けてください。これは、おそらくMySQLの場合です。この形式の構文は受け入れられます。また、サンプルデータと望ましい結果は、あなたが何をしているのかを説明するのに役立ちます。 'INSERT'は* column *を追加しないので、質問は不明です。 –
私はmysqlを使用しています。私はUPDATEを使用してもうまく動作せず、エラーの束を返します。多分DUPLICATEか何かを使って?私はその質問を編集した。 –
はい、ON DUPLICATE KEY UPDATEのようなサウンドはあなたが探しているものです。 テーブルにPRIMARY KEYが定義されていることを確認してください –