zoukankan      html  css  js  c++  java
  • MySQL 同时 delete 多张表的数据

    三张表

    article ,tag,article_tag

    article 文章表

    create table article(
        article_id int primary key auto_increment,
        article_title varchar(100)
    );
    insert into article(article_title) values
    ('Spring源码分析'),
    ('Spring生命周期'),
    ('SpringMVC源码分析'),
    ('MySQL....');

    tag 标签表

    create table tag(
        tag_id int primary key auto_increment,
        tag_name varchar(100)
    );
    insert into tag(tag_name) values
    ('Spring'),
    ('SpringMVC'),
    ('Java'),
    ('MySQL');

    article_tag 文章与标签的中间表

    create table article_tag(
        article_tag_id int primary key auto_increment,
        article_id int,
        tag_id int
    );
    insert into article_tag(tag_id,article_id) values
    (1,1),
    (1,2),
    (2,2),
    (3,1),
    (3,2),
    (3,3),
    (4,4);

    关联查询的数据

    删除 文章id 为 2 的相关数据

    # 删除 文章id 为 2 的相关数据
    DELETE article_tag,
    article 
    FROM
        article_tag
        INNER JOIN article ON article_tag.article_id = article.article_id 
    WHERE
        article.article_id = 2;

    执行的结果,再查询

     从这里可以看得出,成功删除了 4 条数据,4 条数据 =   article 表中id为2的数据(只有一条) + article_tag 表中 与 article_id = 2 的  3 条数据。

     

  • 相关阅读:
    Spring声明式事务配置
    spring注解注入:<context:component-scan>详解
    MySQL添加用户、删除用户与授权
    Mysql 分页语句Limit用法
    Java内存泄露的理解与解决
    eclipse的设置和优化
    从svn删除文件夹和文件
    权限管理设计
    Linux Tomcat 6.0安装配置实践总结
    Java 继承
  • 原文地址:https://www.cnblogs.com/oukele/p/13407524.html
Copyright © 2011-2022 走看看