以前在学数据库时 就没搞明白什么是外连接,今天才弄明白~ o(∩_∩)o 我是不是很笨~...
select *
from table1,table2
这里from子句的两个表执行的是笛卡尔积操作。也就是table2中的所有记录从头到尾吧table1中的所有记录映射一遍。得到的记录数是两个表记录数的乘积。
select *
from table1 a, table2 b
where a.id=b.id
这里加上了where子句,得出的结果是两个表id字段相等的记录。也就是说两个表都可能会有记录不会被查询到。
select *
from table1 a, table2 b
where a.id=b.id (+)
这里where子句条件后面加上了(+)。其中没有(+)的表是驱动表(table1)。查询结果将会包含驱动表的所有记录,不管是否能和table2匹配。而table2只有和驱动表匹配的记录才会被查询到。