Oracle Query用于加入同一列

时间:2017-10-12 05:44:20

标签: oracle self-join

如何为不同的值加入相同的列,这两个值应该是and条件?

eg: TABLEA.COLUMNA='XYZ' AND TABLEB.COLUMNA='PQR'

请注意TableATableB是同一张表。

1 个答案:

答案 0 :(得分:0)

从您的标记中,您知道需要一个自连接,其中表的两个实例相互连接。这就像你希望的那样简单:

select a.id as a_id
       , b.id as b_id
from your_table a
     cross join your_table b
where a.columnA = 'XYZ'
and b.columnA = 'PQR'

此查询在逻辑上没有意义。交叉连接将生成a.id, b.id的所有排列的乘积。你可能不想要那个。也许你想要这样的东西:

select a.id as a_id
       , b.id as b_id
from your_table a
     join your_table b
       on a.some_other_column = b.some_other_column
where a.columnA = 'XYZ'
and b.columnA = 'PQR'

但是你没有发布所有标准,所以只有你知道。