gpt4 book ai didi

SQL 查询帮助 (Postgresql)

转载 作者:行者123 更新时间:2023-11-29 12:14:36 25 4
gpt4 key购买 nike

我无法解决查询问题。我有以下 3 个表:

documents (
id,
title
);

positions (
id,
title
);

documents_positions (
document_id,
position_id
);

我想要得到的(我要求的结果)是一个文档矩阵,以及它们适用的职位。因此,每一行都有文档标题,然后每个位置都有一列,如果这些位置适用于文档,则在它旁边有一列为 True 或 False。我怀疑需要某种 LEFT JOIN,因为在文档之后的每一行,我想列出位置表中的每个位置以及文档是否适用于它。有道理吗?

最佳答案

您可以使用cross join 构建矩阵,然后使用left join 查找矩阵中已填充的位置:

select  d.title
, p.title
, case when dp.document_id is null then 'hrmm' else 'HALLELUJAH' end
from documents d
cross join
positions p
left join
documents_positions dp
on dp.document_id = d.id
and dp.position_id = p.id

关于SQL 查询帮助 (Postgresql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6857393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com