gpt4 book ai didi

mysql - 将表数据关联并求和作为摘要

转载 作者:行者123 更新时间:2023-11-29 13:11:57 27 4
gpt4 key购买 nike

我想汇总关系树一端的行与另一端的表。 “关联”是正确的术语吗?实际上,只要了解这些术语就可以帮助我解决这个问题。

我正在使用 MySQL 并扩展现有的数据库结构 - 但如果需要的话可以自由地重新排列数据。我越来越擅长使用 JOIN 创建“过滤”查询s,我相信一旦我理解了它,下一篇就会很简单(无需执行大量查询:)

我为此示例制作了一个简化的架构(和主题!),但想法是相同的。

说有很多DietPlan s,与一堆 MenuItems 相关每个 MenuItem有一个 ItemType (如‘健康’、‘快速’、‘正常’等)DietPlan的另一边有Person s,谁每个店有多少个DailyCalories他们消费,另一个表MenuAllocations ,其中 Person存储他们每日摄入量的百分之多少来自MenuItem .

作为规模示例,可能有 1000 MenuItems ,以及与 200 DietPlan 中的每一个相关的 50 个s。另外,每个DietPlan可能有 10,000 Person s,每个人将有 5-10 个 MenuAllocations各种类型的。

Table layout in MySQL Workbench

我想做的事情对我来说很复杂。我想为每个 DietPlan 创建一个仪表板(可能有很多),从 Person 收集数据那个DietPlan ,并列出每种元素类型的卡路里数。

数学很简单:tblPerson.dailyCalories * tblMenuAllocations.percent 。但我想为每个 Person 这样做在 DietPlan ,对于每个 ItemType

我了解JOIN需要从 tblItemType 中“过滤”大约到tblMenuAllocation并认为它会类似于这样:

SELECT *
FROM tblMenuAllocation
INNER JOIN tblPerson
on personId = PersonId
INNER JOIN tblDietPlan
on tblPerson.dietPlanId = tblDietPlan.DietPlanId
INNER JOIN tblMenuItem
on tblMenuItem.dietPlanId = tblDietPlan.DietPlanId
INNER JOIN tblItemTyp
on ItemTypeId = itemTypeId
WHERE ItemTypeId = 2

感觉就像每个tblItemType都有一个查询,这可能是 Person很多MenuAllocation数据进行排序,并且进行多次连续查询感觉就像我遗漏了一些东西。另外,我认为可以在查询中处理数学来求和值,但我从未这样做过。我可以从哪里开始?

编辑:最终结果如下:

 ----------------------------------------------
ItemId | ItemDesc | TotalCalories
----------------------------------------------
1 Healthy 450,876
2 Fast 1,987,948
3 Vegan 349,123
etc.

我愿意接受在查询之外对数据进行一些操作,但是 Person具体dailyCaloriestblMenuAllocation.percent非常重要计算。一些tblMenuAllocation行可能是相同的 ItemType !

最佳答案

我认为您正在寻找以下主题: Aggregate FunctionsGroup By Modifiers

关于mysql - 将表数据关联并求和作为摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21977395/

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