随笔 - 832  文章 - 2  评论 - 31  阅读 - 167万

mysql多表更新删除

1、多表更新

UPDATE
table1 {[INNER]JOIN | {LEFT | RIGHT}[OUTER]JOIN} table2                                                                                                                                                                                                            
ON conditional_ expr 
SET col1 = {expr1 | DEFAULT}
[,col2={expr2 | DEFAUL}]...
[WHERE where_ condition]
复制代码
/*
今天身份证号为210210199901012222的读者将超限的图书20151101归还,根据描述实现如下需求:
1、更新借阅信息表,将借阅状态(status)更新为‘是’。
2、更新罚款记录信息表,更新实际还书日期和罚款金额,罚款金额为每超出一天扣0.2元。
3、同时更新读者信息表的余额。(在余额中扣除罚款金额)
*/

UPDATE readerfee t1
JOIN readerinfo t2 ON t1.card_id = t2.card_id
SET actual_return_date = sysdate(),
 book_fee = datediff(sysdate(), return_date) * 0.2,
 balance = balance - book_fee
WHERE
    t1.book_id = 20151101
AND t1.card_id = '210210199901012222';
复制代码

2、多表删除

DELETE table1[.*], table2[.*]

FROM table1 {[INNER]JOIN | {LEFT| RIGHT}[OUTER]JOIN} table2 ON conditional_ expr

[WHERE where_ condition]
复制代码
-- 1、由于业务需求,需要删除图书类别表中在图书信息表中没有图书记录的类别。
SELECT
    book_id,
    book_name,
    category
FROM
    bookcategory_bak t1
LEFT JOIN bookinfo_bak t2 ON t1.category_id = t2.book_category_id
WHERE
    parent_id <> 0;

DELETE t1 FROM bookcategory_bak t1 LEFT JOIN bookinfo_bak t2 ON t1.category_id = t2.book_category_id WHERE parent_id <> 0 AND book_id IS NULL; SELECT * FROM bookcategory_bak; -- 2、需要删除图书类别表的编程语言的类别,以及图书信息表中关于编程语言的图书记录。 SELECT book_id, book_name, category_id, category FROM bookcategory_bak t1 INNER JOIN bookinfo_bak t2 ON t1.category_id = t2.book_category_id; DELETE t1, t2 FROM bookcategory_bak t1 INNER JOIN bookinfo_bak t2 ON t1.category_id = t2.book_category_id WHERE t1.category_id = 3;
复制代码

参考文档:https://blog.csdn.net/zdw19861127/article/details/80540124

3、复制一张表:

CREATE TABLE table1_bak
AS
SELECT * FROM table1;

4、将查询的结果插入到一张表中:

insert into table1 select * from table1_bak;

insert into table1(字段1,字段2) select 字段m,字段n from  table2;

 

posted on   小破孩楼主  阅读(272)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示