请问Oracle的FROM后面两种写法有什么区别?
写法一:
SELECT * FROM TABLE_A A, TABLE_B B, TABLE_C C
WHERE A.A_ID = B.A_ID
AND B.C_ID = C.C_ID
;
写法二:
SELECT * FROM TABLE_A A
LEFT OUTER JOIN TABLE_B B
ON A.A_ID = B.A_ID
LEFT OUTER JOIN TABLE_C C
ON B.C_ID = C.C_ID
;
请问1和2是一样的吗?如果不一样,写法一到底是个什么意思?写法二我知道是什么意思
[解决办法]
第一个是内连接,第二个是左外连接
[解决办法]
都能实现,不知道查询速度上是否有区别
[解决办法]
SELECT *
FROM table_a a, table_b b, table_c c
WHERE a.a_id(+) = b.a_id
AND b.c_id(+) = c.c_id
create table table_c (id_1 number,id_2 varchar(2));
insert into table_c values(5,'a');
insert into table_c values(6,'c');
insert into table_c values(7,'e');
commit;
写法一:(内连接)
SELECT * FROM TABLE_A A, TABLE_B B, TABLE_C C
WHERE A.id_1 = B.id_1
AND B.id_2 = C.id_2
等同于
SELECT *
FROM TABLE_A A
inner join TABLE_B B on a.id_1=b.id_1
inner_join TABLE_C C on B.id_2 = C.id_2
结果:
ID_1ID_2ID_1ID_2ID_1ID_2
12b2a5a
写法二:
SELECT * FROM TABLE_A A
LEFT OUTER JOIN TABLE_B B
ON A.id_1 = B.id_1
LEFT OUTER JOIN TABLE_C C
ON B.id_2 = C.id_2
结果:
ID_1ID_2ID_1ID_2ID_1ID_2
12b2a5a
21a
33c3b