我们有一个明智的产品花费时间表,例如
--------------------------------------------------
ID| Timespent | Userid | productID |
--------------------------------------------------
1 | 12333 | 420 | 223
2 | 3647 | 424 | 423
3 | 333 | 424 | 823
4 | 1333 | 654 | 283
--------------------------------------------------
上表中有多个条目
我们还有另一个表,其中包含产品和标签映射
--------------------------------------------------
product_id | tag_id |
--------------------------------------------------
1 | 4352
823 | 43
823 | 654
423 | 4352
--------------------------------------------------
我们还有另一个带有标签名称的表
--------------------------------------------------
tag | tag_name |
--------------------------------------------------
1 | NEWS
823 | Sports
223 | cricket
423 | football
--------------------------------------------------
例如,我想获取根据标签和用户明智花费的时间总和
用户ID应该是不同的,花费的总时间将是花费的总时间
--------------------------------------------------
user_id | tag_name | total_time_spend
--------------------------------------------------
823 | football | 324237462
722 | cricket | 324237462
839 | new | 324237462
923 | USA news | 324237462
23 | MODI | 324237462
--------------------------------------------------
最佳答案
使用联接和相关子查询
select t.* from (
Select p.userid, tn.name,sum(p.timespent) as total
From product p join tagmapping tm
on p.productid=tm.product_id
Join tagname tn on tm.tag_id=tn.tag
Group by p.userid,tn.name
) t where total=
select max(total) from
(
Select p.userid, tn.name,sum(p.timespent) as total
From product p join tagmapping tm
on p.productid=tm.product_id
Join tagname tn on tm.tag_id=tn.tag
Group by p.userid,tn.name
) a where a.userid=t.userid
关于mysql - 如何通过从SQL查询下面提到的三个表中获取数据来找到用户在标签上花费的最高时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54157118/