加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 内部连接的对面

发布时间:2020-12-12 08:38:04 所属栏目:MsSql教程 来源:网络整理
导读:内部联盟的对立面是什么?对于表表Person(int PersonId,varchar PersoName,int AddrId),我想知道Person中具有不良地址表中没有行的错误AddrId的行. 解决方法 What will be the opposite of inner join? 一个OUTER加入,可以有三个选项: 左 右 满 This is a go
内部联盟的对立面是什么?对于表表Person(int PersonId,varchar PersoName,int AddrId),我想知道Person中具有不良地址表中没有行的错误AddrId的行.

解决方法

What will be the opposite of inner join?

一个OUTER加入,可以有三个选项:

>左
>右
>满

This is a good visual representation of JOINs

I want to know the rows in Person with bad AddrId which don’t have a row in the Address table.

使用LEFT JOIN / IS NULL

SELECT p.*
     FROM PERSON p
LEFT JOIN ADDRESS a ON a.addrid = p.addrid
    WHERE a.addrid IS NULL

使用NOT EXISTS

SELECT p.*
  FROM PERSON p
 WHERE NOT EXISTS(SELECT NULL
                    FROM ADDRESS a
                   WHERE a.addrid = p.addrid)

使用NOT IN

SELECT p.*
  FROM PERSON p
 WHERE p.addrid NOT IN (SELECT a.addrid
                          FROM ADDRESS a)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读