首页 > 代码库 > 联表操作
联表操作
一、联表查询:内联结、外联结
1、笛卡儿积:将第一个表的每一行和第二个表的每一行联接成一行生成的所有数据。如果不止两个表的话依此类推。如果只想选择其中的一部分数据的话,可以使用where子句
2、内联结(inner join on或join on ):根据两个或多个表中的列之间的关系,从这些表中查询数据:
a)、创建三张表,user_role为t_user和t_role的关联表:
1 create table t_user( 2 id number primary key, 3 name varchar2(30), 4 sex varchar2(10) 5 ); 6 create table t_role( 7 id number primary key, 8 post varchar2(30),--置位 9 pay number --薪资10 );11 create table user_role(12 user_id number references t_user(id) ,13 role_id number references t_role(id)14 );
b)、查询时采用 表名(inner) join 表名 on 关联条件 进行查询:
1 select t_user.name,t_user.sex,t_role.post,t_role.pay from t_user inner join user_role on t_user.id = user_role.user_id 2 inner join t_role on t_role.id=user_role.role_id;
3、外连接:左外连接,右外连接,完全外连接。对应SQL:LEFT/RIGHT/FULL OUTER JOIN。通常省略outer 这个关键字。写成:LEFT/RIGHT/FULL JOIN。
1 select *from t_user left join t_role on t_role.id=t_user.id; --左边的表保留全部的信息,右边的表没有匹配到信息则显示为null2 select *from t_user right join t_role on t_role.id=t_user.id; --右边的表保留全部的信息,左边的表没有匹配到信息则显示为null3 select *from t_user full join t_role on t_role.id=t_user.id; --左右连边的表都保留全部的信息,如果对方没有匹配到则对方显示为null
联表操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。