如图,两张表,分别是角色(sys_role)和菜单(sys_role_menu)
角色表
菜单表
内连接
看到这张表,我第一感觉通过role_id字段查询出menu_id
select m.menu_id,r.role_id from sys_role r,sys_role_menu m where r.role_id = m.role_id ;
//等价于 select m.menu_id,r.role_id from sys_role r INNER JOIN sys_role_menu m on r.role_id = m.role_id;
通过这个方式获取menu_id(菜单id)
外连接
左外连接
select m.menu_id,r.role_id from sys_role r left join sys_role_menu m on r.role_id = m.role_id ;
image.png
左表为主
右外连接
select m.menu_id,r.role_id from sys_role r right join sys_role_menu m on r.role_id = m.role_id ;
image.png
右表为主
我的理解是左外连接是不停地拿右边的数据去匹配左边的数据
右外连接是不停地拿左边的数据去匹配左边的数据
网友评论