首页 > 解决方案 > 加入没有公共 Serial_Num 列

问题描述

我想看看如何让这 2 个表加入它们没有任何共同的列。Serial_Num 在 Aircraft_type TABLE 和 Type_、Description_、Capacity_、Range_ 中;在 Acraft_Data TABLE 上。图片是单独的输出,但试图用 acraft_data 获取序列号。

在此处输入图像描述

预期产出 在此处输入图像描述

标签: oraclejoinsubquerymultiple-columns

解决方案


如果您想在没有任何公共列的情况下加入它们,则必须基于某些行号进行加入。

我假设您需要表中的每个数据aircraft_type并且aircraft_type记录比aircraft表多,那么您可以使用以下查询:

Select * from
(Select at.*,
        Row_number() over (order by serial_num) as rn
From aircraft_type) at
Join 
(Select a.*,
        Row_number() over (order by capicity) - 1 as rn,
        Count() over () as cnt
From aircraft) a
On mod(at.rn - 1, a.cnt) = a.rn

推荐阅读