sql联动删除,删除触发器怎样来设置
我有3个表管理员表managerAdminId--AdminName---AdminFlagId模块表modular,ModularId--ModularName表3ad...
我有3个表
管理员表 manager AdminId--AdminName---AdminFlagId
模块表 modular ,ModularId--ModularName
表3adminmodular 里面有3个字段 id----AdminId-----ModularId,
AdminId是manager表的外键,ModularId是modular表的外键,
以表3为主,执行SQL语句,把3表结合起来:
select * from bs_adminmodular a inner join bs_manager b on a.AdminId=b.AdminId join bs_modular c on a.ModularId=c.ModularId
获取到结果,显示部分字段
--------------------------------------------
id----AdminName----ModularName
--------------------------------------------
1 xiaoming 评论模块
2 xiaoming 内容模块
-----------------------------------------
怎样把2条结果合成一条,1-----xiaoming-------评论模块,内容模块?
还有就是删除管理员的时候,怎样把表3里的相关数据也删除,联动删除,是要触发器吗,那应该怎样设置,就我这3个表来设置
搞张结果的截图,你可能会明白点 展开
管理员表 manager AdminId--AdminName---AdminFlagId
模块表 modular ,ModularId--ModularName
表3adminmodular 里面有3个字段 id----AdminId-----ModularId,
AdminId是manager表的外键,ModularId是modular表的外键,
以表3为主,执行SQL语句,把3表结合起来:
select * from bs_adminmodular a inner join bs_manager b on a.AdminId=b.AdminId join bs_modular c on a.ModularId=c.ModularId
获取到结果,显示部分字段
--------------------------------------------
id----AdminName----ModularName
--------------------------------------------
1 xiaoming 评论模块
2 xiaoming 内容模块
-----------------------------------------
怎样把2条结果合成一条,1-----xiaoming-------评论模块,内容模块?
还有就是删除管理员的时候,怎样把表3里的相关数据也删除,联动删除,是要触发器吗,那应该怎样设置,就我这3个表来设置
搞张结果的截图,你可能会明白点 展开
展开全部
关于合并,没有太明白你的具体要求。
第二个问题,两种解法,如果是innodb表可以通过建立外键约束来级联删除,语法如下:
[CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name, ...)
REFERENCES tbl_name (index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]
reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION
第二种就是设置after delete trigger
第二个问题,两种解法,如果是innodb表可以通过建立外键约束来级联删除,语法如下:
[CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name, ...)
REFERENCES tbl_name (index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]
reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION
第二种就是设置after delete trigger
追问
那个合并相当于把3个表的字段都合在一起了,然后那个管理员可以管理多个模块, 想要的结果图
---------------------------------------
id AdminName ModularName
---------------------------------------------------
1 xiaoming 评论模块,内容模块
------------------------------------------
xiaoming重复叠在一起。那MyISAM引擎怎么写
追答
我有一个办法,借助group_concat():
select Adminname,group_concat(ModularName)
from bs_adminmodular a inner join bs_manager b on a.AdminId=b.AdminId join bs_modular c on a.ModularId=c.ModularId
group by Adminname;
我么有选择id字段
对的,就是这种方法
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询