以前一直不明白mongo和mysql的区别,只是知道一个是关系型数据库,一个是非关系型数据库,感觉这俩没什么区别,但是最近一个项目用到两个表关联查询才发现mysql这么好用。
前景:在做一个用户角色权限系统,在用户表中存着角色id,但是想通过只查一次sql语句就可以把数据查出来,这就用到了夺标关联查询。
多表联查
(1) 隐式内连接
主体结构:select 表名.字段名[,表名.字段名..] from 表1,表2[,表3..] where 关联条件
select u.username,g.goodsname from user as u,goods as g where u.id = g.uid and u.username = 15613773078
(2) 显式内连接
主体结构:select 表名.字段名[,表名.字段名..] from 表1 inner join 表2 on 关联条件 [inner join 表3 on 条件]
select u.username,g.goodsname from user as u inner join goods as g on u.id = g.uid and u.username = 15613773078
(3) 左关联
select * from user as u left join goods as g on u.id = g.uid
注意:
左关联以左表为主表 右表为辅表 会把主表的所有数据都查询出来 附表没有匹配的数据使用null来占位
(4) 右关联
select * from user as u right join goods as g on u.id = g.uid
注意:
右关联以右表为主表 左表为辅表 会把主表的所有数据都查询出来 附表没有匹配的数据使用null来占位