在Postgresql中联接多个嵌套查询

时间:2018-06-22 23:59:08

标签: postgresql nested

我想从4个表中加入信息。它非常复杂,而且我不是具有子查询的专家。如果有人可以理解,将不胜感激。

我有一个产品表,我想查询经销商(在经销商信息表中) 并加入结果。 然后,我需要将product.owner上的结果加入到一个名为accounts(在account.name上)的表中。 我想我是这样解决的:

> d as (SELECT device_id,dealer_id,owner_id from products) i as (LEFT
> JOIN dealer ON public.dealer.id = d.dealer_id) JOIN  account ON
> i.owner_id = account.id;

有人可以帮我构造这个东西,以报告完整的结果集并完整保存所有信息吗?

编辑:

SELECT pr.id, device_id, dealer_id, owner_id, pr.last_updated,model,brand FROM product pr
LEFT JOIN device dc ON pr.device_id = dc.id
LEFT JOIN dealer dlr ON dlr.id = pr.dealer_id
LEFT JOIN account accts ON accts.id = pr.owner_id

1 个答案:

答案 0 :(得分:1)

这听起来像不需要任何子查询的情况。目前尚不清楚您想要哪种类型的联接,但是如果您想将经销商和客户联接到产品表,这就是您要执行的操作。我做了一个SELECT *,但是您可以使用alias.column

提取单个列
SELECT * FROM product pr
LEFT JOIN dealer dlr ON dlr.id = pr.dealer_id
LEFT JOIN account accts ON accts.name = pr.owner