Orcal中(+)函数的含义以及如何在MySql中实现
Orcal中(+)的含义:
建表:
MySql建表语句,在Orcal中将Int类型改为number,varchar改为varchar2
CREATE TABLE t_A (
id int,
name VARCHAR(10)
);
CREATE TABLE t_B (
id int,
name VARCHAR(10)
);
CREATE TABLE t_c (
id int,
name VARCHAR(10)
);
INSERT INTO t_A VALUES(1,'A1');
INSERT INTO t_A VALUES(2,'A2');
INSERT INTO t_A VALUES(3,'A3');
INSERT INTO t_A VALUES(4,'A4');
INSERT INTO t_A VALUES(5,'A5');
INSERT INTO t_B VALUES(1,'B1');
INSERT INTO t_B VALUES(2,'B2');
INSERT INTO t_B VALUES(3,'B3');
INSERT INTO t_B VALUES(4,'B4');
INSERT INTO t_c VALUES(1,'C1');
INSERT INTO t_c VALUES(2,'C2');
INSERT INTO t_c VALUES(3,'C3');
INSERT INTO t_c VALUES(4,'C4');
案例一:三表
Select * from t_A a,t_B b ,t_c c where a.id=b.id(+) and a.id=c.id(+);
案例二:两表
Select * from t_A a,t_B b , where a.id=b.id(+) ;
作用:
- 表示补充,即哪个表有加号,这个表就是匹配表,另一表为基表。所以加号写在右表,则左表就全部显示,右表满足条件的才能显示,故是左连接。
注意: - 在MySQL中不能作为左右连接标识
另外一种常见的写法:
对应上面的案例一
select * from t_A a left join t_B b on a.id = b.id left join t_c c on a.id= c.id;
对应上面的案例二
Select * from t_A a,t_B b where a.id=b.id(+);
在MySql中的改造实现:
对应上面案例一
select * from t_A a left join t_B b on a.id = b.id left join t_c c on a.id= c.id;
对应上面案例二
Select * from t_A a,t_B b where a.id=b.id(+);
补充:以下为查询结果