有下面两个表
emp表
empno ename deptno
1 Tom 10
2 Jerry 10
3 Pully 20
dept表:
deptno deptname
10 开发
20 行政
比如,上述两个表的笛卡尔积为:
empno ename deptno deptno deptname
1 Tom 10 10 开发
1 Tom 10 20 行政
2 Jerry 10 10 开发
2 Jerry 10 20 行政
3 Pully 20 10 开发
3 Pully 20 20 行政
共计3*2=6条数据;
如:
select * from emp,dept where emp.deptno=dept.deptno;
结果为:
empno ename deptno deptno deptname
1 Tom 10 10 开发
2 Jerry 10 10 开发
3 Pully 20 20 行政
sql99标准表达格式:
select * from emp inner join dept on emp.deptno=dept.deptno;
emp表
empno ename deptno
1 Tom 10
2 Jerry 10
3 Pully 20
dept表:
deptno deptname
10 开发
20 行政
一、笛卡尔积
概念:连接两个表时,出现的可以进行的无条件连接比如,上述两个表的笛卡尔积为:
empno ename deptno deptno deptname
1 Tom 10 10 开发
1 Tom 10 20 行政
2 Jerry 10 10 开发
2 Jerry 10 20 行政
3 Pully 20 10 开发
3 Pully 20 20 行政
共计3*2=6条数据;
二、内连接
概念:也叫等值连接,通过连接条件的限制,消除笛卡尔积,从结果中删除所有没有匹配的记录如:
select * from emp,dept where emp.deptno=dept.deptno;
结果为:
empno ename deptno deptno deptname
1 Tom 10 10 开发
2 Jerry 10 10 开发
3 Pully 20 20 行政
sql99标准表达格式:
select * from emp inner join dept on emp.deptno=dept.deptno;