高级查询
l
内连接
l
外连接
-
左外连接
-
右外连接
-
完全外连接
l
自然连接
内连接
l
连接的多表必须有公共列
(
相等连接
)
l
通过
INNER JOIN
语法实现
l
语法:
SELECT tab_name1.col_name, tab_name2.col_name….
FROM tab_name1 (INNER) JOIN tab_name2
ON
tab_name1.col = tab_name2.col
还可以加
Where
。。。。。。。。。。。。。。。。。
其中
col
是两表的公共列
select student_1.studid,marks.studid,studname from student_1 join marks on student_1.studid=marks.studid where studname='
李四
';
与
UNION
区别。。。。。。。。。
UNION
的两个结果集的并集,相同的字段。。
select student_1.studid,marks.studid mkstudid,studname from student_1 join marks on student_1.studid=marks.studid;// inner join
select student_1.studid,marks.studid mkstudid,studname from student_1 ,marks
where student_1.studid=marks.studid; //
相等连接
内连接
(INNER JOIN)
使用比较运算符进行表间某
(
些
)
列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三
外连接
左外连接
l
返回满足连接条件的所有行,而且还会返回不满足连接条件的连接操作符的左边表的其他行
l
语法:
SELECT tab_name1.col_name, tab_name2.col_name….
FROM tab_name1 LEFT JOIN tab_name2
ON tab_name1.col = tab_name2.col
右外连接
l
返回满足连接条件的所有行,而且还会返回不满足连接条件的连接操作符的左边表的其他行
l
语法:
SELECT tab_name1.col_name, tab_name2.col_name….
FROM tab_name1 RIGHT JOIN tab_name2
ON tab_name1.col = tab_name2.col
完全连接
l
不仅返回满足连接条件的所有行,而且还会返回不满足连接条件的所有行
l
语法:
SELECT tab_name1.col_name, tab_name2.col_name….
FROM tab_name1 FULL JOIN tab_name2
ON tab_name1.col = tab_name2.col
自然连接
----
自我连接
l
同一张表之间的连接查询
l
主要用于在参照表上显示
上下级关系或层次关系
l
语法:
select t1.col_name, t2.col_name
from table1 t1 inner join table1 t2
on t1.col_name = t2.col_name