举例
建两个表:
--表1:stu
id name
1, Jack
2, Tom
3, Kity
4, nono
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
stu.id exam.id name grade
--------------------------------
1 1 Jack 56
2 2 Tom 76
二、外连接分为左外连接(也叫左连接) 和 右外连接(右连接) 全外连接(全连接)
1 1 Jack 56
2 2 Tom 76
3 NULL Kity NULL
4 NULL nono NULL
右连接: RIGHT JOIN 或 RIGHT OUTER JOIN(与作连接相反, 显示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
全连接: FULL JOIN 或 FULL OUTER JOIN (结果是左、右连接结果的并集)
建两个表:
--表1:stu
id name
1, Jack
2, Tom
3, Kity
4, nono
--表2:exam
id grade1, 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
stu.id exam.id name grade
--------------------------------
1 1 Jack 56
2 2 Tom 76
二、外连接分为左外连接(也叫左连接) 和 右外连接(右连接) 全外连接(全连接)
左连接: LEFT JOIN或LEFT OUTER JOIN(显示join 左边的表的所有数据,exam只有两条记录,所以stu.id,grade 都用NULL 显示)
select stu.id,exam.id,stu.name, exam.grade from stu left join exam on stu.id=exam.id1 1 Jack 56
2 2 Tom 76
3 NULL Kity NULL
4 NULL nono NULL
右连接: RIGHT JOIN 或 RIGHT OUTER JOIN(与作连接相反, 显示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
全连接: FULL JOIN 或 FULL OUTER JOIN (结果是左、右连接结果的并集)