MySQL之UPDATE与SELECT结合语法详解与实例

第一种:
语法:

UPDATE table1 SET column1 = (SELECT column FROM table2 [WHERE condition])
WHERE table1.column2 = value;

注:若不加where条件则是更新表中的所有数据,
故执行没有where子句的update要慎重再慎重。

第二种:
语法:

UPDATE table1 INNER/LEFT/RIGHT JOIN 
table2
/
(
 SELECT COLUMNS FROM table3 
 [INNER/LEFT/RIGHT JOIN ON CONDITION] 
 [WHERE conditions]
) AS t3
ON CONDITION
SET column1 = value1,column2 = value2,...
[WHERE conditions];

实例1:

UPDATE 
  $ table1 a 
  INNER JOIN $ table2 b 
    ON a.user_id = b.user_id 
    SET a.balance = a.balance + b.income,
  b.status = 1 
WHERE b.id = 1 
  AND b.status = 0;

实例2:

UPDATE 
  A 
  INNER JOIN 
    (SELECT 
      B.B1 AS B1,
      B.B2 AS B2,
      C.C1 AS C1 
    FROM
      B 
      LEFT JOIN C 
        ON B.B3 = C.C3) AS t 
    ON A.A3 = t.B1 SET A.A1 = t.B2,
  A.A2 = t.C1;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值