首页 > 数据库 >SQL——(NOT) EXISTS 用法

SQL——(NOT) EXISTS 用法

时间:2022-12-04 17:25:18浏览次数:45  
标签:NAME EXISTS 用法 SQL AID WHERE ID SELECT

SQL——EXISTS用法

原文链接:http://www.manongjc.com/detail/26-vnlqolqounrrkqi.html

如下:
表A
ID NAME  
1   A1
2   A2
3   A3

表B
ID AID NAME
1   1     B1
2   2     B2  
3   2     B3

表A和表B是1对多的关系 A.ID => B.AID

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE A.ID=B.AID)

执行结果为

1 A1
2 A2

原因可以按照如下分析

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=1)
--->SELECT * FROM B WHERE B.AID=1 有值返回(真),所以有数据;
 
SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=2)
--->SELECT * FROM B WHERE B.AID=2 有值返回(真),所以有数据;
SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=3)
--->SELECT * FROM B WHERE B.AID=3 无值返回(假),所以没有数据。

NOT EXISTS 就是反过来

SELECT ID,NAME FROM A WHERE NOT EXIST (SELECT * FROM B WHERE A.ID=B.AID)

执行结果为

3  A3

重点:1.内表SELECT什么无所谓;2.内表和外表要建立起联系(此处例子的联系即是指A/外表的ID和B/内表的AID)。

标签:NAME,EXISTS,用法,SQL,AID,WHERE,ID,SELECT
From: https://www.cnblogs.com/Dongmy/p/16950214.html

相关文章

  • Linux中的screen命令的用法
    screen命令的用法在服务器上搭建一些服务的时候,经常要用到screen命令。某些服务开启的时候需要占据一整个控制台,如果关闭了就会导致进程终止。这就成了类似单进程的效果。......
  • MySQL存储引擎
    一、mysql存储引擎概述1.1存储引擎MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提......
  • Got a packet bigger than 'max_allowed_packet' bytes,cpp mysql insert multiple va
     YoucanalsologintoMySQLconsoleandrunthefollowingcommandtosetmax_allowed_packetsizeforthedurationofthesession.setglobalnet_buffer_leng......
  • 第7节-MySQL数据查询
    1、指定列查询1.1、查询所有记录select*fromstudent;1.2、查询学号、学生名字selectsno,snamefromstudent;1.3、定义列的别名selectsnoas学号,snamea......
  • mysql存储结构
    表空间 共享表空间   独立表空间https://www.cnblogs.com/wt645631686/p/8258070.html  偷一手,先贴个链接感谢这位爷innodb_file_per_table参数设置是否开......
  • MYSQL主从复制与读写分离
    一、MySQL主从复制与读写分离1.1主从分离和读写分离的相关概述1)主从复制与读写分离在实质际的生产环境中,对数据库的读和写都在同一个数据库服务器中,是不能满足实院需求......
  • MySQL_03--使用UPDATE根据一个表中的数据条数,更新另一个表的计数字段
    1问题描述1.1两个表的具体内容第一个表:t_user_judge包含:评委id、分配的评分作品数assignNum、完成的评分作品数judgeNum;其他信息字段。第二个表:t_distribute包......
  • 第17节-MySQL数据库备份与恢复
    1、备份1.1、备份多张表mysqldump-uroot-prootcjglscorecourse>score_course.sql1.2、备份多个数据库mysqldump-uroot-proot--databasescjglschool>......
  • sqlserver存储过程
    ref:https://blog.csdn.net/weixin_55909413/article/details/114767079https://blog.csdn.net/h610443955/article/details/83185528......
  • 建表sql
    CREATETABLE"dmsbi"."dm_scm_dim_ioc_all_probe"("id"int4NOTNULLDEFAULTnextval('dm_scm_dim_ioc_all_probe_id_seq'::regclass),"topic"varcharCOLLATE......