1 | SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P |
等同于
1 | SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName |
INNER JOIN
在表中存在至少一个匹配时,INNER JOIN
关键字返回行。
1 | SELECT column_name(s) |
LEFT JOIN
LEFT JOIN
关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
1 | SELECT column_name(s) |
RIGHT JOIN
RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
1 | SELECT column_name(s) |
FULL JOIN
只要其中某个表存在匹配,FULL JOIN
关键字就会返回行。
1 | SELECT column_name(s) |
UNION 和 UNION ALL
UNION
操作符用于合并两个或多个 SELECT
语句的结果集。
请注意,UNION
内部的 SELECT
语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT
语句中的列的顺序必须相同。
SQL UNION
语法
1 | SELECT column_name(s) FROM table_name1 |
SQL UNION ALL
语法
1 | SELECT column_name(s) FROM table_name1 |