gpt4 book ai didi

MySQL查询连接3个表并计数

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

我被这个问题困扰太久了。
我必须合并 3 个表并对不同值进行一些计数。
我有3张 table
1.User_me
profileId( 字符串 )
已回复(整数 1 或 0)

2.简介
profileId ( 字符串 )
idLocation ( int )

3.lookup_location
id(整数)
位置(字符串)

我可以加入 User_me 和 Profiles ON User_me.profileId = Profiles.profileId
我可以加入个人资料和lookup_location ON Profiles.idLocation = Lookup_location.id

在配置文件下,我需要计算 idLocation 的不同值的数量,其中 User_me.profileId = Profiles.profileId
我还需要计算 User_me.responded = 1 的 Profiles.idLocation 的数量

我有这个:

SELECT lookup.location, count(*) as total
FROM User_me user
JOIN Profiles
ON user.profileId= profiles.profileId
JOIN lookup_location lookup
ON profiles.idLocation = lookup.id
GROUP BY profiles.idLocation

但我仍然需要列给我 User_me.responded = 1 的计数
类似于:

SELECT lookup.location, count(*) as total, count(*) responded

最佳答案

如果我正确理解您的问题,您可以在 count 聚合中使用 case 语句:

SELECT lookup.location, count(*) as total, 
count(case when user.responded = 1 then 1 end) as responded
FROM User_me user
JOIN Profiles
ON user.profileId= profiles.profileId
JOIN lookup_location lookup
ON profiles.idLocation = lookup.id
GROUP BY profiles.idLocation

由于您使用的是 MySQL,因此您还可以使用 sum(user.responded = 1) 之类的方法。

关于MySQL查询连接3个表并计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23705617/

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