2017-11-09 19 views
1

私は、この表に次の行を挿入していますが、私は価格を挿入すると、私もidを調べることにより、フィールドpair_idを挿入することができるようにしたい挿入行の文字列の一致に基づいて

+----+---------+---------+ 
| id | pair_id | price | 
+----+---------+---------+ 
| 1 |   | 318.18 | 
+----+---------+---------+ 
| 2 |   | 15.24 | 
+----+---------+---------+ 
| 3 |   | 5963.13 | 
+----+---------+---------+ 

tb_priceと呼ばれますテーブル内のフィールドtb_pair

+----+----------+-----------+ 
| id | base_cur | quote_cur | 
+----+----------+-----------+ 
| 1 | BTC  | USD  | 
+----+----------+-----------+ 
| 2 | ETH  | USD  | 
+----+----------+-----------+ 
| 3 | XMR  | USD  | 
+----+----------+-----------+ 

tb_priceに挿入するとき、私は私に利用できるbase_curquote_cur値を持っています。データを使用して:base_cur = BTCquote_cur = USDprice = 5963.13を私のようなtb_priceを移入することができるようにしたい(ID 3を参照してください):

+----+---------+---------+ 
| id | pair_id | price | 
+----+---------+---------+ 
| 1 |   | 318.18 | 
+----+---------+---------+ 
| 2 |   | 15.24 | 
+----+---------+---------+ 
| 3 | 1  | 5963.13 | 
+----+---------+---------+ 

私はシンプルINSERTクエリでこれを実行しようとしていますが、私はを探しに苦労しています問題が私の現在の知識ではあまりにも抽象的であるとして答えます。私はを調べることによってpair_idが見つかるINNER JOINのいくつかのタイプを想像します。

答えて

2
INSERT INTO tb_price (`pair_id` , `price`) VALUES ((SELECT id FROM tb_pair WHERE `base_cur` = 'ETH' LIMIT 1), '10.00') 

あなたの通貨にETHからbase_curを設定し、価格に10.00を更新する必要があります。変数のバリデーションを追加する必要があるでしょうが、そうでないと、あなたは仕事を終わらせる良い出発点になるはずです。

関連する問題