怎样推断多个字段组成的keyword在另外一张表中是否存在
怎样推断多个字段组成的keyword在另外一张表中是否存在
老帅(20141107)
1.首先推断一个keyword在另外一张表中是否存在非常easy!
SELECT * FROM a
WHERE a.ID
IN
(
SELECT b.ID
FROM b
)
2.假设推断的keyword有多个字段构成怎么办呢?
你不能在IN中使用多个字段。例如以下查询:
SELECT * FROM a
WHERE (a.ID1, a.ID2)
IN
(
SELECT b.ID1, b.ID2
FROM b
)
这不会正常工作,违反了SQLSERVER标准。
3.要解决这一问题。能够用EXISTS来取代IN!
SELECT * FROM a
WHERE EXISTS
(
SELECT NULL
FROM b
WHERE a.ID1 = b.ID1
AND a.ID2 = b.ID2
)
4.值得注意的是。这仅适用于IN,而非NOT IN!
NOT IN与NOT EXISTS在处理空值的方式上略有不同。
SELECT *
FROM a
WHERE (a.ID1, a.ID2) NOT IN
(
SELECT b.ID1, b.ID2
FROM b
)
这不会正常工作,违反了SQLSERVER标准。
要模仿NOT IN的查询例如以下:
我们必须使用下面查询:
SELECT *
FROM a
WHERE NOT EXISTS
(
SELECT NULL
FROM b
WHERE a.ID1 = b.ID1
AND a.ID2 = b.ID2
)
AND NOT EXISTS
(
SELECT NULL
FROM b
WHERE b.ID1 IS NULL
OR b.ID2 IS NULL
)
第二个谓词确保b在ID1和ID2中不会有空值,不论什么这种值都会让原始查询不会返回结果!
怎样推断多个字段组成的keyword在另外一张表中是否存在的更多相关文章
- 将mysql中的一张表中的一个字段数据根据条件导入另一张表中
添加字段:alter table matInformation add facid varchar(99) default ''; 导入数据:update matInformation m set ...
- MySQL中设置同一张表中一个字段的值等于另一个字段的值
今天遇到了一个需求,我在一张表中新增了一个字段,因为这张表以前已经有很多数据了,这样对于以前的数据来说,新增的这个字段的值也就是为该字段的默认值,现在需要将新增的这个字段添加上数据,数据来源为同表的另 ...
- EFCore某张表中获取某几个字段
目录 EFCore某张表中获取某几个字段 1.背景 2.法一:linq 2.1 使用Select方法 2.2 使用ForEach方法 2.3 其他参考代码 3.法二:IQueryble 3.1 参考例 ...
- MySQL 查询多张表中相同字段的最大值
MySql : 有N张表,N未知,每张表都有一个字段(id),每张表的字段结构不完全一样,如何查询所有表里面所有id的最大值?如下图所示: 对上面三张表进行操作的话,结果应该为:9 SQL语句: se ...
- 关于如何修改一张表中所有行与选定字段的同sql多行语句的添加方法
利用Excel以及word文档进行操作 将表的字段以及数据全部放入Excel表中并保存. 在word表中将写好的sql语句放入文档,利用邮件--选择收件人--使用现有列表--(选择之前做好的Excel ...
- [oracle]删除一张表中重复数据,保留其id字段最小的sql
1.表数据结构如下 select * from test t , 'jerry'); , 'jerry'); , 'jerry'); , 'tom'); , 'tom'); , 'jake'); , ...
- ms_sql 触发器记录表字段数据变化的日志 -针对一张表操作
create table sto (id int not null, -- 主键字段 de datetime -- 被跟踪的字段 constraint pk_sto primary key(id)) ...
- mysql如何查询一个字段在哪几张表中
SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.`COLUMNS` WHERE COLUMN_NAME = 'xxx' ; xxx替换成需 ...
- sql一张表中两个字段指向同一个外键
在项目开发中遇到这么一个例子,首先产品表 tb_product ----------------------------- id name 1 手机 2 电脑 3 笔记本 ...
随机推荐
- 洛谷P2236 HNOI2002 彩票 [暴搜]
题目传送门 彩票 分析: 虽然题目标签上标的是Splay,但我一个蒟蒻至今也沒掌握平衡树,所以就索性一个暴搜,加一点剪枝就水过去了- 代码: #include<cstdio> #inclu ...
- vue中keep-alive
vue2.0提供了一个keep-alive组件用来缓存组件,避免多次加载相应的组件,减少性能消耗 1.基本用法,缓存整个页面或组件 <keep-alive> <component&g ...
- Linux命令之firewall-cmd
firewall-cmd [选项] firewall-cmd是firewalld守护程序的命令行客户端.它提供了管理运行时和永久配置的接口.firewalld中的运行时配置与永久配置分开.这意味着可以 ...
- CentOS7系统防火墙开关、状态与自启
首先需要说明的是CentOS7使用的是firewalld.service,而不是iptables.service [xf@xuexi ~]$ systemctl status firewalld.se ...
- 解决在jqmobi框架上使用mobiscroll控件的bug问题
jqmobi(appframework)框架的好处主要是它很轻量级,用在手机上占用内存较小,实际表现较为流畅,这也是它区别于jQuery mobile的一大特色,上一篇博客中提供了在它上面使用日期控件 ...
- A/B Problem(大数)
描述 做了A+B Problem,A/B Problem不是什么问题了吧! 输入 每组测试样例一行,首先一个号码A,中间一个或多个空格,然后一个符号( / 或者 % ),然后又是空格,后面又是一个号码 ...
- 1.2(JavaScript学习笔记)JavaScript HTML DOM
一.DOM DOM全称为document object model(文档对象模型). 此处的文档指当前HTML文档,对象指HTML标签. 当网页被加载时,浏览器会创建页面的文档对象模型. 下面结合具体 ...
- 初识Ant-Design
设计价值观 Ant-Design在设计方面,存在两个大的价值观,自然和确定.自然即顺其自然,在顺应用户的自我感知和行为方式来开发更自然的产品.确定即探索设计规律,并将其抽象成对象,减少设计者的主观干扰 ...
- 93.数字三角形W(深搜)
2189 数字三角形W 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 数字三角形 要求走到最后mod 10 ...
- MongoDB 刷新几次就报错
官方: MongoDB.Driver 在页面上 速度刷新几次,就会抛错? 为何? Service 层 Autofac