LEFT JOIN 关键字从左表 (table1) 返回所有的行, 即使右表 (table2) 中没有匹配. 如果右表中没有匹配, 则结果为 NULL.
SQL LEFT JOIN 语法
- SELECT column_name(s)
- FROM table1
- LEFT JOIN table2
- ON table1.column_name=table2.column_name;
或:
- SELECT column_name(s)
- FROM table1
- LEFT OUTER JOIN table2
- ON table1.column_name=table2.column_name;
注释: 在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN.
注释: LEFT JOIN 关键字从左表 (websites) 返回所有的行, 即使右表 (access_log) 中没有匹配.
********************************************************************************************************************************************************************************************
RIGHT JOIN 关键字从右表 (table2) 返回所有的行, 即使左表 (table1) 中没有匹配. 如果左表中没有匹配, 则结果为 NULL.
SQL RIGHT JOIN 语法
- SELECT column_name(s)
- FROM table1
- RIGHT JOIN table2
- ON table1.column_name=table2.column_name;
或:
- SELECT column_name(s)
- FROM table1
- RIGHT OUTER JOIN table2
- ON table1.column_name=table2.column_name;
注释: 在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN.
注释: RIGHT JOIN 关键字从右表 (Websites) 返回所有的行, 即使左表 (access_log) 中没有匹配.
****************************************************************************************************************************************************************************************
FULL OUTER JOIN 关键字只要左表 (table1) 和右表 (table2) 其中一个表中存在匹配, 则返回行.
FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果.
SQL FULL OUTER JOIN 语法
- SELECT column_name(s)
- FROM table1
- FULL OUTER JOIN table2
- ON table1.column_name=table2.column_name;
**********************************************************************************************************************************************************************************************
UNION 操作符用于合并两个或多个 SELECT 语句的结果集.
请注意, UNION 内部的每个 SELECT 语句必须拥有相同数量的列. 列也必须拥有相似的数据类型. 同时, 每个 SELECT 语句中的列的顺序必须相同.
SQL UNION 语法
- SELECT column_name(s) FROM table1
- UNION
- SELECT column_name(s) FROM table2;
注释: 默认地, UNION 操作符选取不同的值. 如果允许重复的值, 请使用 UNION ALL.
SQL UNION ALL 语法
- SELECT column_name(s) FROM table1
- UNION ALL
- SELECT column_name(s) FROM table2;
注释: UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名.
***********************************************************************************************************************************************************************************
SELECT INTO 语句从一个表复制数据, 然后把数据插入到另一个新表中.
MySQL 数据库不支持 SELECT ... INTO 语句, 但支持 INSERT INTO ... SELECT .
当然你可以使用以下语句来拷贝表结构及数据:
CREATE TABLE 新表
AS
SELECT * FROM 旧表
SQL SELECT INTO 语法
我们可以复制所有的列插入到新表中:
- SELECT *
- INTO newtable [IN externaldb]
- FROM table1;
或者只复制希望的列插入到新表中:
- SELECT column_name(s)
- INTO newtable [IN externaldb]
- FROM table1;
提示: 新表将会使用 SELECT 语句中定义的列名称和类型进行创建. 您可以使用 AS 子句来应用新名称.
来源: http://www.bubuko.com/infodetail-2848729.html