SQL学习笔记4:进阶之JOIN and UNION-JOIN,LEFT JOIN,RIGHT JOIN , FULL JOIN and UNION
一、 SQL JOINS用于在两个或多个表中查询。
- INNER JOIN: 当两个表至少存在一个匹配项时返回行。
语法规则:
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
- LEFT JOIN: 即使在右表中没有匹配,仍返回左表中的所有行(返回左表中的所有行,以及右表中的匹配行)。
语法规则:
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
- RIGHT JOIN: 即使在左表中没有匹配,仍返回右表中的所有行(返回右表中的所有行,以及左表中的匹配行)。
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
- FULL JOIN: 返回左表和右表中的所有行,即使两表没有匹配项。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
二、UNION用于连接两个或多个SELECT语句
每一个SELECT语句需要返回相同的列数,每列的数据类型要相同。
- UNION: 返回连接查询的结果时,去掉重复值。
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
- UNION ALL: 返回所有查询结果。
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2