准备工作:
创建表table_1并插入数据
CREATE TABLE table_1 ( id INT IDENTITY(1,1) PRIMARY KEY, name VARCHAR(50), classid INT ) GO INSERT INTO table_1(name,classid) SELECT'苹果',1 UNION ALL SELECT'香蕉',1 UNION ALL SELECT'草莓',1 UNION ALL SELECT'西瓜',1 UNION ALL SELECT'樱桃',1 UNION ALL SELECT'荔枝',1 UNION ALL SELECT'芒果',1 UNION ALL SELECT'木瓜',1 ----table_2没有此项 UNION ALL SELECT'香梨',1 ----table_2没有此项 GO
创建表table_2并插入数据
CREATE TABLE table_2 ( id INT IDENTITY(1,1) PRIMARY KEY, name VARCHAR(50), classid INT ) GO INSERT INTO table_2(name,classid) SELECT'苹果',2 UNION ALL SELECT'香蕉',2 UNION ALL SELECT'草莓',2 UNION ALL SELECT'西瓜',2 UNION ALL SELECT'樱桃',2 UNION ALL SELECT'荔枝',2 UNION ALL SELECT'芒果',2 UNION ALL SELECT'龙眼',2 --table_1没有此项 UNION ALL SELECT'芭乐',2 --table_1没有此项 UNION ALL SELECT'榴莲',2 --table_1没有此项 GO
表之间的连接关系也就是集合之间的关系,如图:
内连接
其实就是两表之间的公共部分。
SELECT a.*,b.*FROM table_1 a JOIN table_2 b ON a.[name]=b.[name]
结果:
1 苹果 1 1 苹果 2 2 香蕉 1 2 香蕉 2 3 草莓 1 3 草莓 2 4 西瓜 1 4 西瓜 2 5 樱桃 1 5 樱桃 2 6 荔枝 1 6 荔枝 2 7 芒果 1 7 芒果 2
左连接
其实就是A表记录集A1和A、B表的公共部分C.
SELECT a.*,b.*FROM table_1 a left JOIN table_2 b ON a.[name]=b.[name]
结果:
1 苹果 1 1 苹果 2 2 香蕉 1 2 香蕉 2 3 草莓 1 3 草莓 2 4 西瓜 1 4 西瓜 2 5 樱桃 1 5 樱桃 2 6 荔枝 1 6 荔枝 2 7 芒果 1 7 芒果 2 8 木瓜 1 NULL NULL NULL 9 香梨 1 NULL NULL NULL
右连接
其实就是B表的记录集B1和A、B表公共部分C
SELECT a.*,b.*FROM table_1 a right JOIN table_2 b ON a.[name]=b.[name]
结果:
1 苹果 1 1 苹果 2 2 香蕉 1 2 香蕉 2 3 草莓 1 3 草莓 2 4 西瓜 1 4 西瓜 2 5 樱桃 1 5 樱桃 2 6 荔枝 1 6 荔枝 2 7 芒果 1 7 芒果 2 NULL NULL NULL 8 龙眼 2 NULL NULL NULL 9 芭乐 2 NULL NULL NULL 10 榴莲 2
全连接
其实就是A1+C+B1全部
SELECT a.*,b.*FROM table_1 a full JOIN table_2 b ON a.[name]=b.[name]
结果:
1 苹果 1 1 苹果 2 2 香蕉 1 2 香蕉 2 3 草莓 1 3 草莓 2 4 西瓜 1 4 西瓜 2 5 樱桃 1 5 樱桃 2 6 荔枝 1 6 荔枝 2 7 芒果 1 7 芒果 2 8 木瓜 1 NULL NULL NULL 9 香梨 1 NULL NULL NULL NULL NULL NULL 8 龙眼 2 NULL NULL NULL 9 芭乐 2 NULL NULL NULL 10 榴莲 2
交叉连接
其实就是两张表的卡迪尔积。
SELECT a.*,b.*FROM table_1 a CROSS JOIN table_2 b
结果:
1 苹果 1 1 苹果 2 1 苹果 1 2 香蕉 2 1 苹果 1 3 草莓 2 1 苹果 1 4 西瓜 2 1 苹果 1 5 樱桃 2 1 苹果 1 6 荔枝 2 1 苹果 1 7 芒果 2 1 苹果 1 8 龙眼 2 1 苹果 1 9 芭乐 2 1 苹果 1 10 榴莲 2 2 香蕉 1 1 苹果 2 2 香蕉 1 2 香蕉 2 2 香蕉 1 3 草莓 2 2 香蕉 1 4 西瓜 2 2 香蕉 1 5 樱桃 2 2 香蕉 1 6 荔枝 2 2 香蕉 1 7 芒果 2 2 香蕉 1 8 龙眼 2 2 香蕉 1 9 芭乐 2 2 香蕉 1 10 榴莲 2 3 草莓 1 1 苹果 2 3 草莓 1 2 香蕉 2 3 草莓 1 3 草莓 2 3 草莓 1 4 西瓜 2 3 草莓 1 5 樱桃 2 3 草莓 1 6 荔枝 2 3 草莓 1 7 芒果 2 3 草莓 1 8 龙眼 2 3 草莓 1 9 芭乐 2 3 草莓 1 10 榴莲 2 4 西瓜 1 1 苹果 2 4 西瓜 1 2 香蕉 2 4 西瓜 1 3 草莓 2 4 西瓜 1 4 西瓜 2 4 西瓜 1 5 樱桃 2 4 西瓜 1 6 荔枝 2 4 西瓜 1 7 芒果 2 4 西瓜 1 8 龙眼 2 4 西瓜 1 9 芭乐 2 4 西瓜 1 10 榴莲 2 5 樱桃 1 1 苹果 2 5 樱桃 1 2 香蕉 2 5 樱桃 1 3 草莓 2 5 樱桃 1 4 西瓜 2 5 樱桃 1 5 樱桃 2 5 樱桃 1 6 荔枝 2 5 樱桃 1 7 芒果 2 5 樱桃 1 8 龙眼 2 5 樱桃 1 9 芭乐 2 5 樱桃 1 10 榴莲 2 6 荔枝 1 1 苹果 2 6 荔枝 1 2 香蕉 2 6 荔枝 1 3 草莓 2 6 荔枝 1 4 西瓜 2 6 荔枝 1 5 樱桃 2 6 荔枝 1 6 荔枝 2 6 荔枝 1 7 芒果 2 6 荔枝 1 8 龙眼 2 6 荔枝 1 9 芭乐 2 6 荔枝 1 10 榴莲 2 7 芒果 1 1 苹果 2 7 芒果 1 2 香蕉 2 7 芒果 1 3 草莓 2 7 芒果 1 4 西瓜 2 7 芒果 1 5 樱桃 2 7 芒果 1 6 荔枝 2 7 芒果 1 7 芒果 2 7 芒果 1 8 龙眼 2 7 芒果 1 9 芭乐 2 7 芒果 1 10 榴莲 2 8 木瓜 1 1 苹果 2 8 木瓜 1 2 香蕉 2 8 木瓜 1 3 草莓 2 8 木瓜 1 4 西瓜 2 8 木瓜 1 5 樱桃 2 8 木瓜 1 6 荔枝 2 8 木瓜 1 7 芒果 2 8 木瓜 1 8 龙眼 2 8 木瓜 1 9 芭乐 2 8 木瓜 1 10 榴莲 2 9 香梨 1 1 苹果 2 9 香梨 1 2 香蕉 2 9 香梨 1 3 草莓 2 9 香梨 1 4 西瓜 2 9 香梨 1 5 樱桃 2 9 香梨 1 6 荔枝 2 9 香梨 1 7 芒果 2 9 香梨 1 8 龙眼 2 9 香梨 1 9 芭乐 2 9 香梨 1 10 榴莲 2