【发布时间】:2018-03-16 18:40:11
【问题描述】:
我有一个包含 4 个表的简单表层次结构;
slices -> blocks -> ribbons -> glassplate
关于上述语义的一些逻辑:
- “切片”是(生物)组织的切片。从一个切片创建多个“块”。 blocks 表有一个 slice_id 外键。
- 从一个块构建多个“丝带”。 Ribbons 表有一个 block_id 外键。
- 色带放置在带条形码的玻璃板上 (glassplate_id)。 (通常只有一根丝带,但可能更多)。 Ribbons 表有一个 glassplate_id 外键。
我正在尝试构建一个 (postgres) 查询,该查询将使用 glassplates 条形码(即 glassplate_id)检索有关色带、块和切片的相关信息。
我当前的查询,使用玻璃板 ID = '163'
SELECT * from slices WHERE slices.id IN
(
SELECT blocks.slice_id FROM blocks WHERE blocks.id IN
(
SELECT block_id FROM ribbons WHERE glassplate_id = 163
)
)
请从 slices 表中返回我需要的信息。
问题是;如何在同一个查询中检索blocks 和ribbons 表中的相关字段?这些表中的相关列将是我选择的列。
【问题讨论】:
标签: postgresql subquery