加号在前和在后分别是什么意思?百度上怎么都搜不出来,请高手不吝赐教。
last_data.item_id(+) = item_data.item_idlast_data.item_id = item_data.item_id(+)
last_data.item_id(+) = item_data.item_idlast_data.item_id = item_data.item_id(+)
解决方案 »
- 如何给有外键的表一次性插入多条数据
- 关于游标
- 用row_number() over(partition by key1 order by key1 )可以显示组内序号,我还想显示组序号,怎么搞
- 关于一个部门统计的sql语句请教大家!!!急,哭~~!!
- 请教:关于exp,imp的INCTYPE
- 谁能给我解释一下关于:角色的密码有什么作用呢?
- Oracle 中的字段替换
- 如何将oracle数据导成文本文件?在线等急!!!!!帮忙!!!
- oracle中,查询语句中有没有统计记录条数的函数?
- 在pl/sql 怎样知道delete * from table 删除的记录数量
- oracle 817 客户端,出现乱码,请问怎么解决?
- 清空用户下的所有表和存储过程以及函数等等
last_data.item_id(+) = item_data.item_id 等同于, right outer join
加号在前表示左联,在后表示右连接
last_data表中的ID 全部查出来,item_data不一定全部查出来。只 查询匹配的,不匹配的用空之代替
create table dali.test1(a int,b int);
create table dali.test2(a int,b int);
insert into dali.test1 values(1,456);
insert into dali.test1 values(2,427);
insert into dali.test2 values(1,45456);
insert into dali.test2 values(3,45656);
---内连接
select * from dali.test1 a, dali.test2 b where a.a=b.a;
---左连接
select * from dali.test1 a, dali.test2 b where a.a=b.a(+);
---右连接
select * from dali.test1 a, dali.test2 b where a.a(+)=b.a;
---完全连接
select * from dali.test1 a, dali.test2 b where a.a=b.a(+)
union
select * from dali.test1 a, dali.test2 b where a.a(+)=b.a;
---迪卡尔
select * from dali.test1, dali.test2;
'==================================================================
9i和sqlserver一样 left join,right join,full join
表示右联,也就是查出item_data、last_data两个表都有的ID和item_data有但last_data没有的ID
last_data.item_id = item_data.item_id(+)
表示左联,也就是查出item_data、last_data两个表都有的ID和item_data没有但last_data有的ID
区别就在后面那一部分