首页 > 解决方案 > 如何查询在另一个字段中与该行上的值共享相同值的所有值?

问题描述

抱歉标题措辞尴尬;我想不出另一种方式来描述这个问题!

我有一个表(我们称之为 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

请问有人知道该怎么做吗?

标签: sqldb2

解决方案


您可以使用自联接:

select t1.*, t2.offer
from t t1 join
     t t2
     on t1.deal = t2.deal and t1.offer <> t2.offer;

推荐阅读