postgresql SQL帮助连接表

de90aj5v  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(2)|浏览(169)

我有一张table
资产表

Asset Id | Asset Name | Asset Type | Product Id

转移表

Transfer Id | From Asset ID | To Asset Id | Product Id

我想加入这些table

Transfer ID | From Asset Name | To Asset Name | Product Id

我以前

Select *
From Transfer
Left join Asset on asset.id = from_asset_id or asset.id = to_asset_id

但是我在不同的行中得到了from资产名称和to资产名称的输出。我希望它在同一列而不是行中。
有人可以帮助我,我应该如何查询得到我的输出?

6za6bjd0

6za6bjd01#

您似乎需要两个连接,如:

select t.id, 
    a1.name from_asset_name, 
    a2.name to_asset_name,
    t.product_id
from transfers t
inner join assets a1 on a1.id = t.from_asset_id
inner join assets a2 on a2.id = t.to_asset_id

我不确定为什么要在这里使用left join--除非这两个资产列可以为空。

j13ufse2

j13ufse22#

我尝试使用与公认答案略有不同的符号,但您也可以使用以下符号:

select t1.transfer_id, t2.asset_name as from_asset_name,
t3.asset_name as to_asset_name, t1.product_id from transfers as t1
inner join assets as t2 on t1.from_asset_id=t2.asset_id
inner join assets as t3 on t1.to_asset_id=t3.asset_id;

相关问题