有關oracle 9i中的內連接,左外連接,右外連接問題
1. 內連接很簡單
select A.*, B.* from A,B where A.id = B.id
select A.*, B.* from A inner join B on A.id = B.id
以上兩句是完全等價的
2. 左外連接
select distinct(p.person_id) from t_pbase_info p, t_pcontact_info c where p.person_id = c.person_id(+)
select distinct(p.person_id) from t_pbase_info p left join t_pcontact_info c on p.person_id = c.person_id
以上兩句是完全等價的
3. 右外連接
select distinct(p.person_id) from t_pbase_info p, t_pcontact_info c where p.person_id(+) = c.person_id
select distinct(p.person_id) from t_pbase_info p right join t_pcontact_info c on p.person_id = c.person_id
以上兩句是完全等價的
也就是說在oracle中+號放在=右邊相當于左連接,而+號放在=左邊相當于右連接
久久不醉