首页 > 数据库 >【SQL】查询存在于一个表而不存在于另外一个表的数据

【SQL】查询存在于一个表而不存在于另外一个表的数据

时间:2023-03-21 19:03:23浏览次数:42  
标签:存在 exists -- id 表而 SQL where ID select

需求描述:A、B两表,找出ID字段中,存在A表,但是不存在B表的数据。

-- 1、方法一(推荐):使用not exists函数,括号内select 1查A与B的id能关联上的,然后查A表not exists的
select * from A a where not exists (select 1 from B b where b.id = a.id)

-- 2、方法二(推荐):使用 left join , “B.ID isnull” 表示左连接之后在B.ID 字段为 null的记录
select A.ID from A left join B on A.ID=B.ID where B.ID is null

-- 3、方法三(不推荐):子查询的方式(慢)
select * from B where (select count(1) as num from A where A.ID = B.ID) = 0   

-- 4、方法四(不推荐):使用 not in ,容易理解,效率低
select A.ID from A where A.ID not in (select ID from B)

标签:存在,exists,--,id,表而,SQL,where,ID,select
From: https://www.cnblogs.com/lihw/p/17241039.html

相关文章

  • Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required
    #情景今天在搭建springboot+mybatis环境的时候遇到的问题,大概率是版本导致的冲突问题#解决1.第一种解决方案<dependency><groupId>org.springframework.boot</groupI......
  • mysql集群搭建docker-compose方案
    MySQL集群搭建大致有两种方式,一种是单主/多从的主从复制方式,另一种是使用GaleraCluster高可用解决方案。1、步骤以下我们详细介绍一下单主/多从的主从复制方式:确认服......
  • mysql 事务
    https://blog.csdn.net/m0_46836425/article/details/121851867https://blog.csdn.net/qq_33459343/article/details/124634721......
  • mysql 在线修改表结构 onlineDDL
    背景:在项目库中有几个表的数据特别大,数据条数达到几千万。由于新需求上线,要加两个字段。如果直接在数据库用alter,会导致锁表,时长一两个小时,影响业务。所以找了pt-osc和gh-......
  • 消息 7347,级别 16, 链接服务器 'XXX' 的 OLE DB 访问接口 'MSDASQL' 返回的数据与列 '
    消息7347,级别16,状态1,第174行链接服务器'XXX'的OLEDB访问接口'MSDASQL'返回的数据与列'[MSDASQL].ext'所需的数据长度不匹配。所需的(最大)数据长度为510,但......
  • Sql Server数据库恢复挂起
    第一种解决办法:权限问题,把SQLServer启动账号改为具有完全控制权限的本地账号,停止SQL服务并重新启动ctrl+r运行输入services.msc,进入服务!然后找到具有完全控制权限的本......
  • Sql Server数据库(可疑)解决办法
    解决:方法一: 重新还原数据库方法二:1、修改数据库为紧急模式ALTERDATABASEZhangxingSETEMERGENCY2、使数据库变为单用户模式ALTERDATABASEZhangxingSETSINGLE_U......
  • PentestLab-web安全SQL注入-EXP9
    我们打开靶机,选择“SQL Injections”选择“Example9”观察页面盲注的方法如下:无回显,使用延时注入注入点​​http://192.168.1.142/sqli/example9.php?order=if(length(da......
  • SQL之数据表删除
    1、delete基本语法DELETEFROM表名[WHERE条件表达式];2、删除部分记录deletefromstudentwhereage=14;3、删除全部数据deletefromstudent;5、truncate......
  • SQL之数据表更新数据
    1、update基本语法UPDATE表名SET字段名1=值1[,字段名2=值2,…][WHERE条件表达式];2、更新部分数据updatestudentsetage=20,gender='female'wherename='to......