赞
踩
多表查询原理:将多个表通过笛卡尔积形成一个虚表,再根据查询条件筛选符合条件的数据。
sql数据库表连接,主要分为:内连接、外连接(左连接、右连接 、全连接)、交叉连接、自连接
外连接包括 左连接、右连接、全连接 (left|right | full outer join ……on),其中outer可以省略
在关系数据库中,数据分布在多个逻辑表中。 要获得完整有意义的数据集,需要使用连接来查询这些表中的数据。
SQL Server支持多种连接包括
左连接返回左表中的所有行,以及右表中与左表匹配的行。如果右表中没有匹配的行,则结果集中对应的列将包含NULL值。
SELECT columns
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
内连接返回两个表中满足连接条件的行。只有当两个表中的指定列的值相等时,行才会出现在结果集中。
SELECT columns
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
右连接与左连接相反,它返回右表中的所有行,以及左表中与右表匹配的行。如果左表中没有匹配的行,则结果集中对应的列将包含NULL值。
SELECT columns
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
全连接返回左表和右表中的所有行。如果某一边的表中没有匹配的行,则结果集中对应的列将包含NULL值。并且有一个 on 条件匹配。
SELECT columns
FROM table1
FULL JOIN table2
ON table1.column_name = table2.column_name;
交叉连接返回左表中的每一行与右表中的每一行的组合。这实际上是左表中的每一行与右表中的每一行进行笛卡尔积运算。
SELECT columns
FROM table1
CROSS JOIN table2;
自连接是一个表与其自身进行连接。这种连接通常用于查找表内的相关行,例如查找具有父子关系的记录。
SELECT columns
FROM table1 t1
JOIN table1 t2
ON t1.parent_id = t2.id;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。