如何从整个相关的MySQL表中删除数据?

时间:2017-02-20 21:16:48

标签: mysql

我有3张桌子

tbl_car
id | name
1 | toyota

tbl_brand
id | brand_name | **car_id** (one to many)
1 | brand1 | 1
2 | brand2 | 1


tbl_item
id | item_name | **brand_id** (one to many)
1 | brand1_item1 | 1
2 | brand1_item2 | 1
3 | brand2_item1 | 2
4 | brand2_item2 | 2

我想从tbl_car中删除数据id = 1,我试试

DELETE tbl_car a LEFT JOIN tbl_brand b ON a.id = b.car_id LEFT JOIN tbl_item c ON b.id = c.brand_id WHERE a.id = 1

但它没有用。我想要的是删除tbl_car id = 1和关系表中的整个数据。

1 个答案:

答案 0 :(得分:0)

你可以尝试这样:

DELETE a.*,b.*,c.* FROM tbl_car a LEFT JOIN tbl_brand b ON a.id = b.car_id LEFT JOIN tbl_item c ON b.id = c.brand_id WHERE a.id = 1

或尝试在表tbl_car

中删除后使用触发器
  delimiter $$
    CREATE TRIGGER `after_delete_Car`     
      AFTER DELETE ON `tbl_car`     
      FOR EACH ROW     
    BEGIN
      DELETE FROM tbl_brand WHERE car_id=OLD.id;
      DELETE FROM tbl_item WHERE brand_id=OLD.id;
    END
    $$
    delimiter ; 
相关问题