oracle 数据库查询-关联查询-2
0、数据库查询
例如:
查询两个表中有一列相同的数据
select f.customerno,t.dstaddr,t.successflag,t.msginfo,t.delivertime from im_message_1787 t,msg_creditcardnotice f where t.dstaddr=f.address
1、内联查询:
想把用户的积分信息, 等级,都列出来,一般会出现:
select * from emd_mteller t1,emd_mrole t2 where t1.teller_id = t2.teller_id
select * from emd_mteller t1 inner join emd_mrole t2 on t1.teller_id = t2.teller_id
内联查询:
就是把两个表中的 teller_id 的行拼成一行, 后者的效率即使用inner join 的效率会高一些
内联查询:
join或者 inner join 只返回两个表中符合要求的
2、左联查询:
left join 或者left outer join
返回左表中的所有行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null)。
Select * from t1 left outer join t3 on t1.userid = t2.userid
3、右联查询
右联:right join, right outer join 显示右表中所有行
Select * from t1 right outer join t2 on t1.userid = t2.userid
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
4、全联查询:
完整外部联接:full join 或 full outer join
这个方式会显示两边表中所有行
Select * from t1 full outer join t3 on t1.userid = t2.userid完整外部联接:full join 或 full outer join