⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 6.1.2 各种联接的使用示例.sql

📁 sqlserver 数据库编程的绝好脚本
💻 SQL
字号:
--测试数据
DECLARE @a TABLE(id int)
INSERT @a SELECT 1
UNION ALL SELECT 2

DECLARE @b TABLE(id int)
INSERT @b SELECT 2
UNION ALL SELECT 3

--内联接
SELECT * FROM @a a JOIN @b b ON a.id=b.id
SELECT * FROM @a a,@b b WHERE a.id=b.id
/*--结果(只返回两个表中id相同的记录)
id           id
---------------- ----------- 
2           2
--*/

--左向外联接
SELECT * FROM @a a LEFT JOIN @b b ON a.id=b.id
SELECT * FROM @a a,@b b WHERE a.id*=b.id --会产生不明确查询,不建议再使用这种方式
/*--结果(返回@a(左边表)所有的记录,及@b(右边表)的id与@a表id匹配的记录),不匹配的用NULL表示
id           id 
----------------- ----------- 
1           NULL
2           2
--*/

--右向外联接
SELECT * FROM @a a RIGHT JOIN @b b ON a.id=b.id
SELECT * FROM @a a,@b b WHERE a.id=*b.id –会产生不明确查询,不建议再使用这种方式
/*--结果(返回@b(右边表)所有的记录,及@a(左边表)的id与@b表id匹配的记录),不匹配的用NULL表示
id           id 
----------------- ----------- 
2           2
NULL       3
--*/

--完整外部联接
SELECT * FROM @a a FULL JOIN @b b ON a.id=b.id
/*--结果(返回@a与@b表所有的记录,id不匹配的用NULL表示
id           id 
----------------- ----------- 
2           2
NULL       3
1           NULL
--*/

--交叉联接
SELECT * FROM @a a CROSS JOIN @b b
SELECT * FROM @a a,@b b
/*--结果:
id           id 
----------------- ----------- 
1           2
2           2
1           3
2           3
--*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -