sql - 如何查询在另一个字段中与该行上的值共享相同值的所有值?
问题描述
抱歉标题措辞尴尬;我想不出另一种方式来描述这个问题!
我有一个表(我们称之为 table1),大致如下所示:
OFFER | DEAL
------------
A | 1
B | 1
C | 1
D | 2
E | 2
F | 3
我想编写一个查询,列出所有报价及其交易编号,以及一个显示共享该交易编号的任何报价的附加字段。
换句话说,结果应该是这样的:
OFFER | DEAL | SHARED
---------------------
A | 1 | B
A | 1 | C
B | 1 | A
B | 1 | C
C | 1 | A
C | 1 | B
D | 2 | E
E | 2 | D
请问有人知道该怎么做吗?
解决方案
您可以使用自联接:
select t1.*, t2.offer
from t t1 join
t t2
on t1.deal = t2.deal and t1.offer <> t2.offer;
推荐阅读
- javascript - 如何使用 JavaScript 动态获取未来的日期?
- android - PublishSubject.create 的替代 Kotlin Flow 方法
().buffer(20) - angular - Angular2 Spotify API
- javascript - Angular无法读取未定义的属性“结果”
- ios - 通过 HTTP 发送字符串
- reactjs - 我应该如何在变量中使用 Array.slice?
- opengl - 在 Skia 或 SkiaSharp 中使用 GPU 加速进行无头屏幕外渲染
- python - 单击许多不起作用的元素:硒
- conv-neural-network - Yolov4:细分值不同时mAP值不同
- javascript - 他们是一种让 for 循环遍历数组中每个项目的方法吗?