关于mysql 多表数据的操作

139 阅读1分钟

查询

通过中间表查询

用户表,角色表,中间表通过中间表的uid和role_id分别关联用户表和角色表的id,然后通过中间表查询用户id对应的他的所有角色信息

  select admin_user.user_name,admin_role.role_name from admin_user left join admin_role_user on admin_user.id = admin_role_user.uid join admin_role on admin_role_user.role_id = admin_role.id where admin_user.id=47

插入

批量插入数据

对单张表的数据进行批量插入

   insert into table1(field1,field1) values((1,2),(1,3),(1,4))

修改

批量修改数据根据where条件,field 就是更新的值 case id就是条件更改的id,根据id,去更改field的值

update table set field = case id 
   when 1 then '1,2,3' 
   when 2 then '1,6,5' 
   when 4 then '1,9,8' 
 end id in (1,2,4)

删除

批量删除数据根据wehre条件

   delete from admin_role_rule where (role_id,rule_id) in ((1,2),(1,3),(1,4));

多表删除同一id:例子是三表删除

  delete table1,table2,table3 from table1 left join table2 on table1.id=table2.role_id left join table3 on table3.role_id=table1.id where table1.id=${roleId}