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 條數據。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM