有两句sql语句:Select a.c1,a.c2,a.c3,b.c1,b.c2,b.c3
from a left outer join b on a.c1=b.c1 and a.c2=b.c2
和
Select a.c1,a.c2,a.c3,b.c1,b.c2,b.c3
from a left outer join b on a.c1=b.c1
where a.c2=b.c2这两个sql语句执行的结果相同吗?
from a left outer join b on a.c1=b.c1 and a.c2=b.c2
和
Select a.c1,a.c2,a.c3,b.c1,b.c2,b.c3
from a left outer join b on a.c1=b.c1
where a.c2=b.c2这两个sql语句执行的结果相同吗?
SQL> select * from a;C1 C2 C3
---------- ---- ----------
1 2 3
2 3 4
3 4 5
4 5 6SQL> select * from b;C1 C2 C3
---------- ---------- -----
3 4 5
4 5 6
7 8 9
8 9 0SQL>
SQL> Select a.c1,a.c2,a.c3,b.c1,b.c2,b.c3
2 from a left outer join b on a.c1=b.c1 and a.c2=b.c2
3 /C1 C2 C3 C1 C2 C3
---------- ---- ---------- ---------- ---------- -----
3 4 5 3 4 5
4 5 6 4 5 6
2 3 4
1 2 3 SQL>
SQL> Select a.c1,a.c2,a.c3,b.c1,b.c2,b.c3
2 from a left outer join b on a.c1=b.c1
3 where a.c2=b.c2
4 /C1 C2 C3 C1 C2 C3
---------- ---- ---------- ---------- ---------- -----
3 4 5 3 4 5
4 5 6 4 5 6
Select a.c1,a.c2,a.c3,b.c1,b.c2,b.c3
from a left outer join b on a.c1=b.c1 and a.c2=b.c2
解答:这一句是表a中的所有满足a.c1=b.c1且a.c2=b.c2条件的记录进行左外连接2.
Select a.c1,a.c2,a.c3,b.c1,b.c2,b.c3
from a left outer join b on a.c1=b.c1
where a.c2=b.c2而这一句则是对表a中的记录先筛选出a.c2=b.c2的记录,然后再按照a.c1=b.c1的记录作左外连接所以以上两句当然意思不同!!!