Posted on 2009-08-11 18:02 
Prayer 阅读(369) 
评论(0)  编辑 收藏 引用  所属分类: 
数据库,SQL 
			 
			
		 
		你是要弄清楚区别在什么地方还是单纯想要文字说明 
文字说明的楼上说了一大堆了,不说了。 
弄个例题,直观一点。两个表: 
--表stu 
id name 
1, Jack 
2, Tom 
3, Kity 
4, nono 
--表exam 
id grade 
1, 56 
2, 76 
11, 89 
内连接 (显示两表id匹配的) 
select stu.id,exam.id,stu.name, exam.grade from stu inner join exam on stu.id=exam.id 
-------------------------------- 
1 1 Jack 56 
2 2 Tom 76 
左连接(显示join 左边的表的所有数据,exam只有两条记录,所以stu.id,grade 都用NULL 显示) 
select stu.id,exam.id,stu.name, exam.grade from stu left join exam on stu.id=exam.id 
1 1 Jack 56 
2 2 Tom 76 
3 NULL Kity NULL 
4 NULL nono NULL 
右连接(与作连接相反,显示join右边表的所有数据) 
select stu.id,exam.id,stu.name, exam.grade from stu right join exam on stu.id=exam.id 
1 1 Jack 56 
2 2 Tom 76 
NULL 11 NULL 89 
  
  
内连接取交集,外连接分左和右, 
左连接左边的全取, 
右连接右边的全取 
文章出处:DIY部落(http://www.diybl.com/course/7_databases/mysql/Mysqljs/20090302/156788.html)