MySQL中的多表连接
2013-12-17 15:48
155 查看
现有表R,S如下:
笛卡尔积
select * from R,S;
结果:
注:不需要任何条件。结果为两张表函数相乘(3x3=9)。
连接类型
分为三种:交叉连接、内连接、外连接。
交叉连接
cross join
没有where子句的交叉连接将产生连接表的笛卡尔积。
select * from R cross join S;
结果:和笛卡尔积一样,如上图。
select * from R cross join S where R.C = S.C;
结果:
内连接
内连接分为三种:自然连接、等值连接、非等值连接。
自然连接 natural join:在连接条件中使用等于=运算符比较被连接列的列值,但删除连接表中重复列。
select * from R natural join S;
结果:
等值连接 :使用等于=比较连接列的列值,在查询结果中列出接连表中的所有列,包括其中的重复列。
select * from R join S where R.C = S.C;
或
select * from R inner join S where R.C = S.C;
非等值连接 :在连接条件中,可以使用其他比较运算符,比较被连接列的列值,如:<、>、!=等。
外连接
外连接分为三类:全外连接、左外连接、右外连接。
左外连接 left join / left outer join
select * from R left join S on R.C = S.C;
左外连接要遍历左表的所有记录,右表没有的用null表示。
右外连接 right join / right outer join
select * from R right join S on R.C = S.C;
右外连接要遍历右表所有的记录,左表没有的用null表示。
全外连接 full join / full outer join
select * from R full join S on R.C = S.C;
转载自:http://huaxia524151.iteye.com/blog/1423614
相关文章推荐
- 解决MySQL连接超时Communications link failure due to underlying exception
- 使用java连接Mysql 和Using JDBC Statement Objects to Execute SQL
- ssm整合时,通过jdbc.properties文件无法连接mysql问题
- R连接mysql以及一些操作
- php与MySQL、PostgreSQL的连接设置
- (转载)Unity 3d连接mysql
- php mysql连接数据库实例
- mysql如何根据select结果进行二次连接查询
- php连接mysql实例
- MySQL连接问题【mysql_connect和mysql_pconnect区别】
- Mysql开启远程连接方法
- mysql 允许远程主机连接
- java 与mysql的连接
- java中myeclipse连接mysql问题(java.lang.ClassNotFoundException: com.mysql.jdbc.Driver)
- 关于Mysql查看某个ip连接数及删除掉这个ip连接的方法(也可以进行mysql锁表解锁)
- 远程连接 Mysql 失败的解决方法
- Tomcat学习总结(17)—— Tomcat生产环境中域名访问和连接MySQL
- 设置mysql远程连接root权限
- C#连接MySQL
- mysql,oracle,mssql 连接参数配置