使用交叉联接

使用交叉联接
没有 Where 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。下面是 Transact-SQL 交叉联接示例:
USE pubs
Select au_fname, au_lname, pub_name
FROM authors CROSS JOIN publishers
orDER BY au_lname DESC
结果集包含 184 行(authors 有 23 行,publishers 有 8 行;23 乘以 8 等于 184)。
不过,如果添加一个 Where 子句,则交叉联接的作用将同内联接一样。例如,下面的 Transact-SQL 查询得到相同的结果集:
USE pubs
Select au_fname, au_lname, pub_name
FROM authors CROSS JOIN publishers
Where authors.city = publishers.city
orDER BY au_lname DESC
— 或
USE pubs
Select au_fname, au_lname, pub_name
FROM authors INNER JOIN publishers
ON authors.city = publishers.city
orDER BY au_lname DESC

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏