SQL IN 子查询返回多个值
来源:互联网 发布:海康130万网络摄像机 编辑:程序博客网 时间:2024/05/16 00:49
下午遇到一个问题,IN子查询返回多个值。
网上查了很多文档,资料,都没收获。
问了技术群的同僚,竟然还被嘲笑了。IN 怎么可能匹配多个字段呢!
个人印象中曾经在哪里见到过,所以就觉得不服气。自己慢慢地去试,试出来了。
我们常用的IN 操作是这样的:
select * from tab twhere t.col1 in ('value1''value2');
但是如果是多个列的取值来自同一个子查询呢?
我们是不是要这样写了?
select * from tab1 t1where t1.col1 in (select col1 from tab2) and t1.col2 in (select col2 from tab2);
现在分享一种简便的方法给大家:
select * from tab twhere (t.col1,t.col2) in (select col1,col2 from tab2);
也就是这样的
select * from tab twhere (t.col1,t.col2) in (('value','value1'),('value','value2'));
我还不知道为什么网上的一些文档中为什么没有提到这种写法。
在这里写出来是想分享给大家,另外这也是自己的一个笔记。
如果对这方面比较熟悉的朋友,有不同的看法,还希望多多指教。
另外,**如果自己觉得是对的,自己动手努力实践出来。
当他人请教时,自己没有尝试成功之前,不要盲目否定。**
1 0
- SQL IN 子查询返回多个值
- SQL语句in中使用子查询
- sql where in 后跟子查询注意事项
- 记一次sql优化,in+子查询
- Sql多条件查询,子查询,in及分页查询
- mysql not in子查询返回结果为空
- sql in查询结果按照in的条件排序返回
- sql多表查询之三:子查询IN
- Linq to SQL 语法查询(子查询 & in操作 & join )
- SQL临时表递归查询子信息并返回记录
- ORACLE 子查询返回
- SQL使用in查询按条件顺序返回
- SQL循序渐进(20)Aliases 、In以及子查询
- SQL中行为不当的子查询,IN,exists
- 包含IN子查询的SQL语句的优化
- SQL中带有NOT IN 子查询改写
- MySQL IN子查询
- (NOT) IN 子查询
- 友盟微博failed to find provider info for com.sina.weibo.sdkprovider
- 3-2、java.util.List
- Sublime Text 3 python 配置
- 3-3、java.util.Set
- 3-4、java.util.Queue
- SQL IN 子查询返回多个值
- JavaScript内置对象--History 对象
- 【排序】快速排序及其非递归实现,归并排序详解
- 4-1、java.util.AbstractList
- Complexities
- 根据json里的某个key对json数据进行分组
- java对象和类
- iOS 【模仿App 获取app素材】
- hdu 2035 (快速乘方)快速乘方取模