gpt4 book ai didi

MySQL:对两个不同表中的数据求和

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

我有一个菜单数据库,可以跟踪它的点击情况。菜单有类别和子类别,我试图获取每个类别的点击量,但在数据库中,如果该项目位于一个类别中,则点击次数将注册到子类别,否则点击次数将计入类别中。我有一个查询将获得所有子类别 (category_type 3) 的点击次数,但我需要将它们添加到其父类别 (category_type 2) 的点击次数中。有一个名为 CategoryHierarchy 的表,它将每个类别映射到其父类别。这就是我所拥有的:

SELECT IFNULL(SUM(`MenuEntryAnalytics`.`opened`), 0) AS `clicks`,
`Categories`.`id`,
`Categories`.`name`,
`Categories`.`category_type`,
`CategoryHierarchy`.`parent_id` AS `parent`
FROM `MenuEntryAnalytics`
INNER JOIN `MenuEntries`
ON `MenuEntryAnalytics`.`menu_entry_id` = `MenuEntries`.`id`
LEFT JOIN `MenuEntryToCategory`
ON `MenuEntryAnalytics`.`menu_entry_id` = `MenuEntryToCategory`.`menu_entry_id`
RIGHT JOIN `Categories`
ON `MenuEntryToCategory`.`category_id` = `Categories`.`id`
RIGHT JOIN `CategoryHierarchy`
ON `Categories`.`id` = `CategoryHierarchy`.`category_id`
WHERE `Categories`.`category_type` = 3
GROUP BY `id`;

结果:

clicks  id  name                  type parent
=============================================
2032 3 Appetizers 3 2
455 4 Salads 3 2
680 6 Sandwiches 3 5
424 7 Burgers 3 5
584 9 Pizza 3 8
466 10 Kids Menu 3 8
1445 12 Soda 3 11
1089 13 Signature Cocktails 3 11
391 14 Bottled Beer 3 11
167 15 Wine 3 11
0 17 Events 3 16
0 18 Sponsors 3 16
186 19 Dessert 3 11
621 26 Restaurants 3 22
263 27 Bars 3 22
112 28 Services 3 25
254 29 Amenities 3 25
67 30 Exclusive Benefits 3 25
190 31 Area Attractions 3 24
14 32 Entertainment 3 24
2 33 Shopping 3 24
117 34 Transportation & Tours 3 24
471 35 Mixed Drinks 3 11
541 36 Draft Beer 3 11

如果我GROUP BY parent那么我可以获得我需要的大部分内容(来自每个类别的子类别的所有点击),但这不会计算点击次数面向类别(与子类别相对,即 category_type 2)。我一直在尝试添加该部分,我能想到的就是使用子查询,但无法识别我正在查看的类别,因此我得到了一个包含多行的子查询。

PS 我没有重组数据库的权限。

最佳答案

由于父 ID 与 ID 位于同一命名空间中,因此您可以简单地使用 IFNULL 来选择父 ID(如果存在),否则选择 ID。并将其用作您的分组策略。

您可能还想选择与实际列相同的数据。

分组依据 IFNULL(CategoryHierarchy.parent_id, 类别.id, CategoryHierarchy.父 ID)

关于MySQL:对两个不同表中的数据求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29269243/

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