0
我有一个postgres数据库中的多个表,它们拥有完全独特的信息。这些信息如果在查询中正确连接在一起,将会产生我期待的所有可能的组合。我正在寻找的信息是完整的SKU。汇总表中的行数
为了产生完整的SKU,这个查询产生所期望的结果: 功能查询
SELECT
materials.code,
"part_base_parts".code as part_base_parts_id,
shanks.code AS shank_id,
measurements.description
FROM
"part_base_parts"
LEFT JOIN "part_types" ON "part_base_parts"."part_type_id" = "part_types"."id"
RIGHT JOIN "parts_to_shanks" ON "part_base_parts"."id" = "parts_to_shanks"."part_base_part_id"
RIGHT JOIN "parts_to_measurements" ON "part_base_parts"."id" = "parts_to_measurements"."part_base_part_id"
RIGHT JOIN "parts_to_materials" ON "part_base_parts"."id" = "parts_to_materials"."part_base_part_id"
JOIN materials ON "parts_to_materials"."material_id" = materials."id"
JOIN shanks ON "parts_to_shanks"."shank_id" = shanks."id"
JOIN measurements ON "parts_to_measurements"."measurement_id" = measurements."id"
ORDER BY
part_base_parts_id ASC,
materials.code ASC,
shank_id ASC,
measurements.description ASC
鉴于此查询,我产生32640条记录(没有应用索引),用0.82秒查询时。事情是这样的......
给定输出
code part_base_parts_id shank_id description
AA 5105 A 03.0
.
. 32,638 rows in here.
.
ST 6939 D 9/16
这是唯一让我走了一半,虽然。我需要从查询中取回结果并从每列中生成总计数。所以,我需要有结果将是:
预期的效果
code: AA - ###0
...
ST - ###0
part_base_parts_id: 5105 - ###0
...
6939 - ###0
shank_id: A - ###0
...
D - ###0
description: 03.0 - ###0
...
9/16 - ###0
是否有生产“预期效果”从Postgres的的方法吗?
缺少一个'UNION ALL'。我会添加'ORDER BY key,value'。 – klin
我修复了复制/粘贴错误,并按照@klin的建议添加了ORDER BY。 –
该查询工作@ jakub-kania和@klin!我确实在查询时间上受到了打击。从.82秒到最后结果〜3.7秒。我将研究索引并查看要应用它们的表以及这可能如何影响查询。关于增加表演时间的想法? –