SQL IN 子查询返回多对值
我们常用的IN 操作是这样的:
select * from tab t
where t.col1 in ('value1''value2');
1
2
但是如果是多个列的取值来自同一个子查询呢? 
我们是不是要这样写了?
select * from tab1 t1
where t1.col1 in (select col1 from tab2)
  and t1.col2 in (select col2 from tab2);
1
2
3
现在分享一种简便的方法给大家:
select * from tab  t
where (t.col1,t.col2) in (select col1,col2 from tab2);
1
2
3
也就是这样的
select * from tab  t
where (t.col1,t.col2) in (('value','value1'),('value','value2'));
1
2
3
我还不知道为什么网上的一些文档中为什么没有提到这种写法。
在这里写出来是想分享给大家,另外这也是自己的一个笔记。
如果对这方面比较熟悉的朋友,有不同的看法,还希望多多指教。
另外,**如果自己觉得是对的,自己动手努力实践出来。 
当他人请教时,自己没有尝试成功之前,不要盲目否定。**
--------------------- 
作者:心随自在飞 
来源:CSDN 
原文:https://blog.csdn.net/xiesq5112/article/details/52154169 
版权声明:本文为博主原创文章,转载请附上博文链接!
SQL IN 子查询返回多对值的更多相关文章
- Sql中联合查询中的”子查询返回的值不止一个“的问题
		在子查询中,如果想实现如下的功能: select lib,count(*),select sum(newsNo) from Table1 group by lib from Tabel1 T1,Tab ... 
- SQL server 查询出现:---“子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。”SQL查询错误解析---
		最近用select进行数据筛选,碰到下面的这个错误: ---子查询返回的值不止一个.当子查询跟随在 =.!=.<.<=.>.>= 之后,或子查询用作表达式时,这种情况是不允许的 ... 
- “子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。”SQL查询错误解析
		为了实现下述代码,首先得有数据库和相应的表格,本文用的是https://blog.csdn.net/qaz13177_58_/article/details/5575711/中的案例,即先用链接中那些 ... 
- insert into select 引起的 "子查询返回的值不止一个。当子查询跟随在**之后,或子查询用作表达式时,这种情况是不允许的"
		目录 1.事故现场 1.1 在使用 Insert into Table2 select * from Table1 将表1的数据插入到表2时,报错如下: 1.2 sql 语句 2.推测 3.解决方案 ... 
- SQL Server 子查询
		这些主要是老师上课讲的一些知识点,自己做了一些整理放在这里~~~ 子查询可以是标量的.多值的或是表值的. 在期待单个值的地方可以使用标量子查询.例如,以下查询返回具有最大员工编号的员工信息: SELE ... 
- SQL之子查询
		子查询概念:把一个查询的结果在另一个查询中使用就叫做子查询 1.子查询作为条件时 当我们使用子查询作为条件时,若子查询返回值为多个,则会报以下错误: "子查询返回的值不止一个.当子查询跟随在 ... 
- sql 在not in 子查询有null值情况下经常出现的陷阱
		如果下:TempSalesPriceFixedValues表和SalesPriceFixedValues表,要求查询出在TempSalesPriceFixedValues表中且不在SalesPrice ... 
- oracle ORA-01427: 单行子查询返回多个行
		ORA-01427: 单行子查询返回多个行 前几天开发的同事反馈一个问题,说前台系统报出了ORA错误,希望我们能看看是什么原因.java.sql.SQLException: ORA-01427: si ... 
- SQL Fundamentals: 子查询 || 分析函数(PARTITION BY,ORDER BY, WINDOWING)
		SQL Fundamentals || Oracle SQL语言 子查询(基础) 1.认识子查询 2.WHERE子句中使用子查询 3.在HAVING子句中使用子查询 4.在FROM子句中使用子查询 5 ... 
随机推荐
- (1)树莓派3B+引脚
			http://shumeipai.nxez.com/raspberry-pi-pins-version-40 
- 破解EXCEL工作表保护密码
			神技 破解EXCEL工作表保护密码 http://www.mr-wu.cn/crack-excel-workbook-protection/ 我们可以通过新建工作本,来创建一个新的工作本来创造新的宏而 ... 
- SQL注入学习
			本次实验环境用的是Xampp,搭建的sqli-labs 配置环境: 下载路径https://github.com/Audi-1/sqli-labs,下载源代码,将解压好的文件夹放在xampp\htdo ... 
- php实现隔行换色
			<?php $i = 0 ; //声明一个变量 echo "<table width='800' border='1px'>"; //表格开头 设置宽度边框 wh ... 
- JS对象创建模式
			JS的对象创建模式 1.Object构造函数模式 var person = new Object(); person.name = 'name'; person.age = 43; console.l ... 
- PAT刷题 (Java语言)
			1001. A+B Format (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Calculate ... 
- 【luoguP2986】[USACO10MAR]伟大的奶牛聚集Great Cow Gathering
			题目链接 先把\(1\)作为根求每个子树的\(size\),算出把\(1\)作为集会点的代价,不难发现把集会点移动到\(u\)的儿子\(v\)上后的代价为原代价-\(v\)的\(size\)*边权+( ... 
- OpenFOAM——在钝板上分离的层流
			本算例来自<ANSYS Fluid Dynamics Verification Manual>中的VMFL063: Separated Laminar Flow Over a Blunt ... 
- Centos7 U盘安装&命令大全
			软件下载 1.centos下载,下载地址https://www.centos.org/download/ 我选择的镜像是:CentOS-7-x86_64-DVD-1804.iso 2.UltraISO ... 
- 性能测试-GC问题整理
			年轻代与老年代的调优(笔记整理) 几个常见名词 年轻代(young 区)从年轻代空间(包括Eden和Survivor 区域)回收内存被称为 Minor GC空间太小可能导致对象直接进入 old区 .如 ... 
