在ORACLE中,表连接方式主要有:内连接,外连接,自连接:
内连接:
这是最常用的连接查询
SELECT * FROM A INNER JOIN B ON A.ID=B.ID
SELECT * FROM A JOIN B ON A.ID=B.ID
SELECT *FROM A,B WHERE A.ID=B.ID
以上语句查询的结果一样的,都是内连接的使用场景。
外连接:
LEFT JOIN,RIGHT JOIN,FULL JOIN
在外连接查询时,需要明白,基表和匹配表,基表即所有记录都显示的表,匹配表,则是配合匹配条件进行记录显示的表,匹配不到的记录行,相应字段则以NULL显示,所以最终显示的记录数等于基表的记录数。
SELECT * FROM A LEFT JOIN B ON A.ID=B.ID,A表是基表,所以记录全显示,再看B表,与A表中不能通过ID字段匹配的记录,则NULL显示。
SELECT * FROM A,B WHERE A.ID=B.ID(+),效果同上
其它链接以此内推
自连接:
顾名思义,表和自身连接查询