表的内联合和外联合

sitanda 2005-05-14 05:11:53
在表的联合中,有时会遇到内联合和外联合的问题,但我不知道到底什么叫内联合和外联合,翻过相关的书籍,可都解释的不够清楚,不知哪位大虾能帮忙解释以下这个问题吗?

还有那个外联合中又有什么 左外联合 和 又外联合,这到底是怎么回事呢?
...全文
102 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xluzhong 2005-05-14
  • 打赏
  • 举报
回复
使用外联接
仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。而外联接会返回 FROM 子句中提到的至少一个表或视图的所有行,只要这些行符合任何 WHERE 或 HAVING 搜索条件。将检索通过左向外联接引用的左表的所有行,以及通过右向外联接引用的右表的所有行。完整外部联接中两个表的所有行都将返回。

Microsoft® SQL Server™ 2000 对在 FROM 子句中指定的外联接使用以下 SQL-92 关键字:

LEFT OUTER JOIN 或 LEFT JOIN


RIGHT OUTER JOIN 或 RIGHT JOIN


FULL OUTER JOIN 或 FULL JOIN
SQL Server 支持 SQL-92 外联接语法,以及在 WHERE 子句中使用 *= 和 =* 运算符指定外联接的旧式语法。由于 SQL-92 语法不容易产生歧义,而旧式 Transact-SQL 外联接有时会产生歧义,因此建议使用 SQL-92 语法。
xluzhong 2005-05-14
  • 打赏
  • 举报
回复
使用内联接
内联接是用比较运算符比较要联接列的值的联接。

在 SQL-92 标准中,内联接可在 FROM 或 WHERE 子句中指定。这是 WHERE 子句中唯一一种 SQL-92 支持的联接类型。WHERE 子句中指定的内联接称为旧式内联接。

下面的 Transact-SQL 查询是内联接的一个示例:

USE pubs
SELECT *
FROM authors AS a INNER JOIN publishers AS p
ON a.city = p.city
ORDER BY a.au_lname DESC

此内联接称为相等联接。它返回两个表中的所有列,但只返回在联接列中具有相等值的行。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧