updateマルチテーブルトラップ
今日学友は1つのsql題目A 1表B 1表id num id snum 1 10 1 90 2 2000 3 4000 3 30 B表のデータを出してA表の中で最後の結果A表1 90 2 2000 3 4000を挿入してその時もあまり考えていないで、1本のinsert文が定まらないと感じます.しかし、同級生は一つの文だと言った.最後に、B 1表はこれらのデータについて、他にはありません.これは面接問題です.複雑に考えられないのは、私が考えすぎたからです.updateでCREATE TABLE
A1
(id
VARCHAR(12)NULL DEFAULT NULL COLLATE'utf 8_general_ci’, num
VARCHAR(12) NULL DEFAULT NULL ) COLLATE=’utf8_general_ci’ ENGINE=InnoDB ; CREATE TABLE B1
( id
VARCHAR(12) NULL DEFAULT NULL COLLATE ‘utf8_general_ci’, snum
VARCHAR(12) NULL DEFAULT NULL ) COLLATE=’utf8_general_ci’ ENGINE=InnoDB ; まず、ここではsqlがマルチロー更新を実現します.update A1,B1 set A1.num = XXXX where A1.id=B1.id次に、サイズif(A 1.num>B 1.snum,A 1.num,B 1.snum)の最終文update A 1,B 1 set A 1を判断する必要がある.num = if(A1.num>B1.snum,A1.num,B1.snum) where A1.id=B1.id