mysqlのテーブル内の他の2つの列に基づいて列値を設定するにはどうすればよいですか?

mySqltotalで、同じテーブルの他の2つの列の値に基づいて列()の値を設定しようとしています。

http://sqlfiddle.com/#!9/e9c27a/1

CREATE TABLE IF NOT EXISTS `order_total` (
    `order_total_id` int(10) NOT NULL AUTO_INCREMENT,
    `order_id` int(11) NOT NULL,
    `code` varchar(32) NOT NULL,
    `title` varchar(255) NOT NULL,
    `value` decimal(15,4) NOT NULL DEFAULT '0.0000',
    `sort_order` int(3) NOT NULL,
    PRIMARY KEY (`order_total_id`),
    KEY `order_id` (`order_id`)
) ENGINE=MyISAM AUTO_INCREMENT=244 DEFAULT CHARSET=utf8;

INSERT INTO `order_total` (`order_total_id`, `order_id`, `code`, `title`, `value`, `sort_order`) VALUES
(241, 80, 'sub_total', 'Sub-Total', '400.0000', 1),
(242, 80, 'shipping', 'Free Shipping', '10.0000', 3),
(243, 80, 'total', 'Total', '0', 9);

ローカルのmySqlで機能するこのようなコードを試しましたが、もっと良い方法があるのではないかと思いました。

UPDATE order_total ot 
INNER JOIN (
    SELECT order_id, value
    FROM order_total
        WHERE code = 'sub_total'
    GROUP BY order_id
) o ON ot.order_id = o.order_id
INNER JOIN (
    SELECT order_id, value
    FROM order_total
        WHERE code = 'shipping'
    GROUP BY order_id
) o2 ON ot.order_id = o2.order_id
SET ot.value = o.value + o2.value 
WHERE ot.code = 'total' AND ot.order_id = 80

それをより効率的にする方法は?

Md Monjur Ul Hasan

次のように、1つのクエリを使用して合計を計算できます。

update order_total ot 
INNER JOIN (
   SELECT order_id, sum(value) value
   FROM order_total
   WHERE code = 'sub_total' or code= 'shipping'
   GROUP BY order_id
) o ON ot.order_id = o.order_id
SET ot.value = o.value
WHERE ot.code = 'total' AND ot.order_id = 80;

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

2番目のテーブルの値に基づいて1つのテーブルの列を更新するにはどうすればよいですか?

分類Dev

フィールドの部分文字列値に基づいて2つのテーブルを結合するにはどうすればよいですか?

分類Dev

mysqlに条件を追加して、列の値に基づいて異なるテーブルの値を取得するにはどうすればよいですか?

分類Dev

Pythonの他の列の複数の条件に基づいて列の値を設定するにはどうすればよいですか?

分類Dev

複数の他の列の値に基づいて、1つの列内の値を減算するにはどうすればよいですか?

分類Dev

ListViewの文字列値に基づいてTextColorを設定するにはどうすればよいですか?

分類Dev

Rの他の列の値に基づいて、1つの列の値をフィルタリングするにはどうすればよいですか?

分類Dev

htmlフォームの入力に基づいて配列内のアイテムの数を設定するにはどうすればよいですか?

分類Dev

条件に基づいて出力列が計算されるteradataの2つのテーブルを結合するにはどうすればよいですか?

分類Dev

別のテーブルの参照に基づいて異なる値で列を2回出力するにはどうすればよいですか?

分類Dev

SQL Serverのメインテーブルの列の値に基づいてテーブルを結合するにはどうすればよいですか?

分類Dev

外部テーブルの値に基づいてdjangoTabularInlineのmax_numを動的に設定するにはどうすればよいですか?

分類Dev

mySqlの他のテーブルに基づいてフィールド値を更新するにはどうすればよいですか?

分類Dev

2つの異なるテーブルの列のテストに基づいて、列の1つのセルの値を更新するにはどうすればよいですか?(SQLサーバー)

分類Dev

MATLABの特定の条件に基づいてテーブルの最後の列に値を追加するにはどうすればよいですか?

分類Dev

データフレーム内の他の列値に基づいて列値を変更するにはどうすればよいですか?

分類Dev

メンバーの位置に基づいてmysqlデータベースにテーブルを設定するにはどうすればよいですか?

分類Dev

HTML <テーブル>内の<td>要素に列を設定するにはどうすればよいですか?

分類Dev

1つの列に基づいて別のテーブルに列を追加するにはどうすればよいですか?

分類Dev

2つの合計の大きい方に基づいてセルの値を設定するにはどうすればよいですか?

分類Dev

またはステートメントを使用して、他の2つの列の基準に基づいて1つの列から一意の値を抽出するにはどうすればよいですか?

分類Dev

JSON内のフィールドに基づいて2つのテーブルでHiveJOINを実行するにはどうすればよいですか?

分類Dev

他の列の値に基づいて列内の文字列を複雑に変換するにはどうすればよいですか?

分類Dev

親テーブルに基づいて子テーブルの列値を自動更新するにはどうすればよいですか?

分類Dev

別の文字列の値に基づいてテーブル値を取得するにはどうすればよいですか?

分類Dev

テーブルbの列の平均に基づいてテーブルaの列を表示するにはどうすればよいですか?

分類Dev

結合属性の最も近い値に基づいて2つのテーブルを左結合するにはどうすればよいですか?

分類Dev

テーブルAの列の条件に基づいて、異なるテーブルBから列を取得するにはどうすればよいですか?

分類Dev

他のデータフレームからの2つの条件に基づいて列を作成するにはどうすればよいですか?

Related 関連記事

  1. 1

    2番目のテーブルの値に基づいて1つのテーブルの列を更新するにはどうすればよいですか?

  2. 2

    フィールドの部分文字列値に基づいて2つのテーブルを結合するにはどうすればよいですか?

  3. 3

    mysqlに条件を追加して、列の値に基づいて異なるテーブルの値を取得するにはどうすればよいですか?

  4. 4

    Pythonの他の列の複数の条件に基づいて列の値を設定するにはどうすればよいですか?

  5. 5

    複数の他の列の値に基づいて、1つの列内の値を減算するにはどうすればよいですか?

  6. 6

    ListViewの文字列値に基づいてTextColorを設定するにはどうすればよいですか?

  7. 7

    Rの他の列の値に基づいて、1つの列の値をフィルタリングするにはどうすればよいですか?

  8. 8

    htmlフォームの入力に基づいて配列内のアイテムの数を設定するにはどうすればよいですか?

  9. 9

    条件に基づいて出力列が計算されるteradataの2つのテーブルを結合するにはどうすればよいですか?

  10. 10

    別のテーブルの参照に基づいて異なる値で列を2回出力するにはどうすればよいですか?

  11. 11

    SQL Serverのメインテーブルの列の値に基づいてテーブルを結合するにはどうすればよいですか?

  12. 12

    外部テーブルの値に基づいてdjangoTabularInlineのmax_numを動的に設定するにはどうすればよいですか?

  13. 13

    mySqlの他のテーブルに基づいてフィールド値を更新するにはどうすればよいですか?

  14. 14

    2つの異なるテーブルの列のテストに基づいて、列の1つのセルの値を更新するにはどうすればよいですか?(SQLサーバー)

  15. 15

    MATLABの特定の条件に基づいてテーブルの最後の列に値を追加するにはどうすればよいですか?

  16. 16

    データフレーム内の他の列値に基づいて列値を変更するにはどうすればよいですか?

  17. 17

    メンバーの位置に基づいてmysqlデータベースにテーブルを設定するにはどうすればよいですか?

  18. 18

    HTML <テーブル>内の<td>要素に列を設定するにはどうすればよいですか?

  19. 19

    1つの列に基づいて別のテーブルに列を追加するにはどうすればよいですか?

  20. 20

    2つの合計の大きい方に基づいてセルの値を設定するにはどうすればよいですか?

  21. 21

    またはステートメントを使用して、他の2つの列の基準に基づいて1つの列から一意の値を抽出するにはどうすればよいですか?

  22. 22

    JSON内のフィールドに基づいて2つのテーブルでHiveJOINを実行するにはどうすればよいですか?

  23. 23

    他の列の値に基づいて列内の文字列を複雑に変換するにはどうすればよいですか?

  24. 24

    親テーブルに基づいて子テーブルの列値を自動更新するにはどうすればよいですか?

  25. 25

    別の文字列の値に基づいてテーブル値を取得するにはどうすればよいですか?

  26. 26

    テーブルbの列の平均に基づいてテーブルaの列を表示するにはどうすればよいですか?

  27. 27

    結合属性の最も近い値に基づいて2つのテーブルを左結合するにはどうすればよいですか?

  28. 28

    テーブルAの列の条件に基づいて、異なるテーブルBから列を取得するにはどうすればよいですか?

  29. 29

    他のデータフレームからの2つの条件に基づいて列を作成するにはどうすればよいですか?

ホットタグ

アーカイブ