SQL查询问题:where 条件后面两个字段分别有限制

一名码农、 2018-01-23 10:09:55
大家好,问个问题,我现在有个A结果集里面有a,b两列;然后我这边要查询的结果是这样的

select * from table X where X.a in (select a from A) and X.b in (select b from A)

但是我想的是A中结果集的每一行都应该是一一对应的,上面这种结果查的是笛卡尔积之后的结果,我只想要

X.a =A.a && X.b ==A.b 的结果,不要X.a =A.a但是X.b!=同一行b的情况,请问这个该怎么写啊,不要存储过程,
谢谢!!
...全文
1143 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
一名码农、 2018-01-24
  • 打赏
  • 举报
回复
谢谢各位 我再想想 !
liu志坚 2018-01-24
  • 打赏
  • 举报
回复
4楼的应该可以。
zcs_zzh 2018-01-24
  • 打赏
  • 举报
回复
试试这个行不行:
SELECT * FROM X WHERE (a, b) IN (SELECT a, b FROM a)
一名码农、 2018-01-24
  • 打赏
  • 举报
回复
结果集里面rownum应该是唯一自带的id了,话说3L老哥这种写法能解释下吗 不太明白 这样就能一一对应吗
jdsnhan 2018-01-24
  • 打赏
  • 举报
回复

select x.* from table x ,a
where x.a||x.b = A.a||A.b
wandier 2018-01-24
  • 打赏
  • 举报
回复
A结果集里面,没有标示行的唯一id吗

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧