各种联接的使用示例
--测试数据
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 --*/ --交叉联接 本文出自 51CTO.COM技术博客SELECT * FROM @a a CROSS JOIN @b b SELECT * FROM @a a,@b b /*--结果: id id ----------------- ----------- 1 2 2 2 1 3 2 3 --*/ |


kerryyu
博客统计信息
热门文章
最新评论
友情链接