此外,如何适应左外加入,右外加入和全外加入?
当前回答
此分類上一篇
INNER JOIN 最典型的加入为两个或多个表. 它返回数据匹配在两个表上 ON primarykey 和 forignkey 关系. OUTER JOIN 与 INNER JOIN 相同,但它还包含结果设置上的 NULL 数据. LEFT JOIN = INNER JOIN + 未匹配的左表数据与右表上的 Null 匹配. RIGHT JOIN = INNER JOIN + 未匹配的右表数据与左表上的 Null 匹配. FULL JOIN = INNER J
例如:
SELECT *
FROM tablea a
INNER JOIN tableb b
ON a.primary_key = b.foreign_key
INNER JOIN tablec c
ON b.primary_key = c.foreign_key
其他回答
简单的说法:
一个内部合并只接收相匹配的行列。
虽然一个外部加入从一个表中获取相匹配的行,而在另一个表中的所有行......结果取决于你使用哪个行:
左: 右桌上的匹配行和左桌上的所有行 右: 左桌上的匹配行和右桌上的所有行 或 完整: 所有桌上的所有行。
内部加入
回收相匹配的行只,也就是说, A 交叉 B。
此分類上一篇
SELECT *
FROM dbo.Students S
INNER JOIN dbo.Advisors A
ON S.Advisor_ID = A.Advisor_ID
左向外加入
从第一张表中选择所有记录,以及与附件密钥相匹配的第二张表中的任何记录。
此分類上一篇
SELECT *
FROM dbo.Students S
LEFT JOIN dbo.Advisors A
ON S.Advisor_ID = A.Advisor_ID
全外加入
从第二张表中选择所有记录,以及与附件密钥相匹配的第一张表中的任何记录。
此分類上一篇
SELECT *
FROM dbo.Students S
FULL JOIN dbo.Advisors A
ON S.Advisor_ID = A.Advisor_ID
参考
内部和外部加入 SQL 示例和加入区块 SQL: JOINS
在简单的条件下,
1.INNER JOIN OR EQUI JOIN : 返回结果组,仅符合两张表中的状态。
2.OUTER JOIN : 从两个表中返回所有值的结果,即使有条件相匹配或不相匹配。
3.LEFT JOIN : 从左表中返回所有值的结果组合,并仅与右表中的条件相匹配的行。
4.RIGHT JOIN : 从右表返回所有值的结果组合,并且仅符合左表的条件的行列。
5、全加入:全加入和全外加入是相同的。
INNER JOIN 要求在比较两个表中至少有一场比赛. 例如,表 A 和表 B 意味着 A 8 B (A 交叉点 B)。
LEFT OUTER JOIN 和 LEFT JOIN 是相同的. 它提供所有相匹配的记录在两张桌子和所有选项的左桌子。
同样,RIGHT OUTER JOIN和RIGHT JOIN是相同的,它提供了所有记录相匹配的两张表和所有可能的正确的表。
FULL JOIN 是 LEFT OUTER JOIN 和 RIGHT OUTER JOIN 无重复的组合。
内部加入。
一个加入是结合两个表的行列,一个内部加入试图根据您在查询中指定的标准匹配两个表,并只返回相匹配的行列,如果加入中的第一个表中的行列匹配第二个表中的两个行列,那么两个行列将返回结果。
外面加入
左派加入试图从第一张桌子到第二张桌子中的列相匹配,如果它无法找到一场比赛,它将从第一张桌子返回列,并将第二张桌子中的列空白(零)。
推荐文章
- GROUP BY with MAX(DATE)
- 删除id与其他表不匹配的sql行
- 等价的限制和偏移SQL Server?
- 是什么导致这个ActiveRecord::ReadOnlyRecord错误?
- 为什么我不能在DELETE语句中使用别名?
- 在SQL Server Management Studio中保存带有标题的结果
- "where 1=1"语句
- 如何选择一个记录和更新它,与一个单一的查询集在Django?
- 多语句表值函数vs内联表值函数
- 如何从Oracle的表中获取列名?
- NOLOCK提示在SELECT语句中的作用
- SQL OVER()子句-它什么时候有用,为什么有用?
- 如果字段在MySQL中为空,则返回0
- 我如何使用ROW_NUMBER()?
- SQL或者TSQL是图灵完备的吗?