zoukankan      html  css  js  c++  java
  • 各种联接的使用示例.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
    --*/
  • 相关阅读:
    第六章 虹销雨霁(中)
    第四章 曙光初现(下)
    第三章 曙光初现(上)
    第二章 福祸相伴(下)
    第二章 福祸相伴(上)
    小云(云层-陈霁)的发展史
    小白成长建议(9)-苞丁解牛
    NYoj 116士兵杀敌(二)区间求和,单点更新
    HDU 1754 区间查询,单点更新
    《灯亮or灯灭》 --有个有趣的数论问题
  • 原文地址:https://www.cnblogs.com/shihao/p/2509627.html
Copyright © 2011-2022 走看看