道生壹贰 2023-09-12 09:07 采纳率: 66.7%
浏览 3
已结题

mysql关联表修改SQL

有3张表
table1,table2,table3
其中
t1存client_id,client_name,id_num
t2存client_id,client_name,id_num
t3存client_id,agreement_no,product_no

有如下现象
t1.client_name = t2.client_name,
t1_id_num = t2.id_num,
t1.client_id != t2.client_id,

t3有多条数据项,其中1条的client_id = t1.client_id,剩余的client_id = t2.client_id

如何编写sql将t3表中等于t1.client_id的数据修改成t2.client_id

示例:

tableclient_idclient_nameid_numagreement_noproduct_no
t1111张三666//
t2222张三666//
t3111//77702
t3222//88803
t3222//99904
  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-12 12:20
    关注

    【以下回答由 GPT 生成】

    问题的解决步骤如下:

    1. 首先,我们需要使用 SELECT 语句确认需要修改的数据。我们需要选择 table3client_id 等于 table1.client_id 的数据,并与 table2 进行连接以获取正确的 client_id。我们可以使用以下 SQL 语句来完成这个操作:
    SELECT t3.client_id, t2.client_id AS new_client_id, t3.agreement_no, t3.product_no
    FROM table3 t3
    JOIN table1 t1 ON t3.client_id = t1.client_id
    JOIN table2 t2 ON t1.client_name = t2.client_name AND t1.id_num = t2.id_num
    WHERE t1.client_id <> t2.client_id
    
    1. 确认结果正确后,我们可以使用 UPDATE 语句将 table3 中的数据更新为正确的 client_id。我们可以使用以下 SQL 语句来完成更新操作:
    UPDATE table3 t3
    JOIN table1 t1 ON t3.client_id = t1.client_id
    JOIN table2 t2 ON t1.client_name = t2.client_name AND t1.id_num = t2.id_num
    SET t3.client_id = t2.client_id
    WHERE t1.client_id <> t2.client_id
    

    这样,我们就成功地将 table3 表中等于 table1.client_id 的数据修改为了 table2.client_id。请注意,在执行这些 SQL 语句之前,请先做好数据备份,以防止数据丢失。

    如果你还有其他问题,请随时告诉我。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月12日
  • 已采纳回答 9月12日
  • 创建了问题 9月12日

悬赏问题

  • ¥30 关于#微信#的问题:微信实名不绑卡 可以实现吗 有没有专家 可以解决
  • ¥15 (标签-考研|关键词-set)
  • ¥15 求修改代码,图书管理系统
  • ¥15 请问有没求偏多标签数据集yeast,reference,recreation,scene,health数据集。
  • ¥15 传感网应用开发单片机实训
  • ¥15 Delphi 关于sAlphaImageList使用问题
  • ¥15 寻找将CAJ格式文档转txt文本的方案
  • ¥15 shein测试开发会问些啥我是写java的
  • ¥15 关于#单片机#的问题:我有个课程项目设计,我想在STM32F103veTX单片机,M3主控模块上设计一个程序,在Keil uVision5(C语言)上代码该怎么编译?(嫌钱少我可以加钱,急急急)
  • ¥15 opnet仿真网络协议遇到问题