MySQL-表连接
MySQL别名
SELECT CONCAT_WS(', ', lastName, firstname) AS `Full name` #CONCAT_WS函数用于字符串的拼接 FROM employees;
MySQL-INNER JOIN运算
功能介绍:将一个表中的行与其他表中的行进行匹配,并允许从两个表中查询包含列的行记录。
INNER JOIN语
句之前,必须指定以下条件:
第一,在From语句中指定主表。
第二,表中要连接的主表应该出现在INNER JOIN语
句中。理论上说,可以连接多个其他表。 但是,为了获得更好的性能,应该限制要连接的表的数量(最好不要超过三个表)。
第三,连接条件或连接谓词。连接条件出现在INNER JOIN
语句的ON
关键字之后。连接条件是将主表中的行与其他表中的行进行匹配的规则。
假设使用INNER JOIN子句连接两个表:t1和t2
SELECT column_list
FROM t1
INNER JOIN t2 ON join_condition;
对于t1
表中的每一行,INNER JOIN
语句将它与t2
表的每一行进行比较,以检查它们是否都满足连接条件。当满足连接条件时,INNER JOIN
将返回由t1
和t2
表中的列组成的新行。
请注意,t1
和t2
表中的行必须根据连接条件进行匹配。如果找不到匹配项,查询将返回一个空结果集。当连接超过2
个表时,也应用此逻辑。
MySQL-LEFT JOIN运算
功能介绍:从两个或多个数据库表查询数据。
假设要从两个表t1和t2查询数据。
SELECT
t1.c1, t1.c2, t2.c1, t2.c2
FROM
t1
LEFT JOIN
t2 ON t1.c1 = t2.c1;
当使用LEFT JOIN
语句将t1
表加入t2
表时,如果来自左表t1
的行与基于连接条件(t1.c1 = t2.c1
)的右表t2
匹配,则该行将被包含在结果集中。
如果左表中的行与右表中的行不匹配,则还将选择左表中的行并与右表中的“假”行组合。“假”行对于SELECT
子句中的所有相应列都包含NULL
值。
MySQL-CROSS JOIN运算
功能介绍:CROSS JOIN语
句从连接的表返回行的笛卡儿乘积。
连接两个表:T1和T2的CROSS JOIN子句的语法: SELECT * FROM T1 CROSS JOIN T2;
将两张表的情况全部列举出来
结果表: 列= 原表列数相加,行= 原表行数相乘
MySQL-INTERSECT操作符(交集)
功能介绍:INTERSECT
运算符是一个集合运算符,它只返回两个查询或更多查询的交集。
INTERSECT语法:
(SELECT column_list
FROM table_1)
INTERSECT
(SELECT column_list
FROM table_2);
INTERSECT
运算符用于两个查询,应用以下规则:
第一:列的顺序和数量必须相同。
第二:相应列的数据类型必须兼容或可转换