sqlserver左关联LEFT JOIN的使用与注意事项

sqlserver在结合查询数据的时辰,有时辰但愿以某一个张表的成果为准,联系关系别的一张表,不管是否联系关系得上,第一张表的成果都呈现在成果集中。这个时辰就可以利用左联系关系left join了。可是,前提写的分歧位置,查询成果将纷歧样

方式/步调

  1. 1

    建立一个姑且表,用于演示sqlserver语法中的LEFT JOIN利用

    IF OBJECT_ID('tempdb..#tmp1') IS NOT NULL DROP TABLE #tmp1; 

    CREATE TABLE #tmp1(

        Code varchar(50),             -- 编码

        Remark varchar(200)        -- 备注

    );

  2. 2

    建立别的一个姑且表,用于演示sqlserver语法中的LEFT JOIN利用

    IF OBJECT_ID('tempdb..#tmp2') IS NOT NULL DROP TABLE #tmp2; 

    CREATE TABLE #tmp2(

        Code varchar(50),          -- 编码

        Title varchar(200)          -- 职位

    );

  3. 3

    往姑且表中插入几行测试数据,此中包罗插入Null值

    insert into #tmp1(Code, Remark) values('Code1', '海说神聊京');

    insert into #tmp1(Code, Remark) values('Code10', '上海');

    insert into #tmp1(Code, Remark) values('Code100', '巴黎');

    insert into #tmp2(Code, Title) values('Code1', NULL);

    insert into #tmp2(Code, Title) values('Code10', '人员');

    insert into #tmp2(Code, Title) values('Code99', '司理');

  4. 4

    查询姑且表中的测试数据

    select * from #tmp1;

    select * from #tmp2;

  5. 5

    利用LEFT JOIN联系关系两张表,以第一个姑且表为准,查询职位不为空的成果,正常写法如下

    select * 

    from #tmp1 a

    left join #tmp2 b on b.Code = a.Code and b.Title IS NOT NULL 

  6. 6

    利用LEFT JOIN联系关系两张表,以第一个姑且表为准,查询职位不为空的成果,将职位不为空的前提写到Where前提中去

    select * 

    from #tmp1 a

    left join #tmp2 b on b.Code = a.Code 

    where b.Title IS NOT NULL

  7. 7

    从运行成果可以看出,对于left join前提写到join子句和写到where子句,成果是纷歧样的。left join联系关系的时辰,前提写到where中,就半斤八两于这个前提酿成了inner join,必需两个表都知足才出来成果。是以,日常平凡写left join前提的时辰要注重这个不同

  • 发表于 2019-04-19 22:30
  • 阅读 ( 1095 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
联系我们:uytrv@hotmail.com 问答工具