我有一个简单的表层次结构,涉及4个表;
slices -> blocks -> ribbons -> glassplate
关于上述语义的一些逻辑:
我正在尝试构建一个(postgres)查询,该查询将使用玻璃板条形码(即glassplate_id)检索有关色带,块和切片的相关信息。
我当前的查询,使用glassplate 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
)
)
从切片表中返回我需要的信息。
问题是; 如何在同一个查询中检索块和色带表中的相关字段?这些表中的相关列将是我选择的列。
答案 0 :(得分:1)
了解JOINS
。
SELECT
*
FROM
slices
JOIN blocks
ON (slices.id = blocks.slice_id)
JOIN ribbons
ON (blocks.id = ribbons.block_id)
WHERE
ribbons.glassplate_id = 163;