在进行查询操作时,我们通常需要查询两个关联表的数据,我们可以使用where语句进行查询,如:
select Emp.E_Id,Company.C_OraName from Emp,Company where Companey.C_Id=Emp.C_Id
但是我们往往会碰到比较复杂的语句,这时候使用where就不太合适了,其实SQL可以用较为直接的形式进行
连接
操作,可以在From子句中以直接的形式指出:
select top 10 E_Id,E_Name,C_Name
from
Emp join Companey on Companey.C_Id=Emp.C_Id
where
E_Id not in (select top 20 E_Id from Emp order by E_Id asc)
order by E_Id asc
//查询表Emp中第21到第30条数据以升序排列,其中C_Name来自于另一个表
Emp join Companey on Companey.C_Id=Emp.C_Id 就是一个常见的连接:表A join 表B on A.c=B.c
连接大大简化了SQL语句,也使得SQL语句更直观易懂
附:下面介绍一下SQL连接
Sql连接类型有:
|
inner join
|
内连接
|
|
left outer join
|
左外连接
|
|
right outer join
|
右外连接
|
|
full outer join
|
完全外连接
|
连接关键字有:NATURAL,ON,USING
举例说明连接操作的结果:
表X
|
A
|
B
|
C
|
|
a1
|
b1
|
c1
|
|
a2
|
b2
|
c2
|
|
a3
|
b3
|
c3
|
表Y
|
B
|
C
|
D
|
|
b1
|
c1
|
d1
|
|
b2
|
c2
|
d2
|
|
b4
|
c4
|
d4
|
X natural left outer join Y
|
A
|
B
|
C
|
D
|
|
a1
|
b1
|
c1
|
d1
|
|
a2
|
b2
|
c2
|
d2
|
|
a3
|
b3
|
c3
|
null
|
X left outer join Y on X.B=Y.B and X.C=Y.B
|
A
|
X.B
|
X.C
|
Y.B
|
Y.C
|
Y.D
|
|
a1
|
b1
|
c1
|
b1
|
c1
|
d1
|
|
a2
|
b2
|
c2
|
b2
|
c2
|
d2
|
|
a3
|
b3
|
c3
|
null
|
null
|
null
|
X left outer join Y using(B)
|
A
|
B
|
X.C
|
Y.C
|
D
|
|
a1
|
b1
|
c1
|
c1
|
d1
|
|
a2
|
b2
|
c2
|
c2
|
d2
|
|
a3
|
b3
|
c3
|
null
|
null
|