gpt4 book ai didi

mysql - 4 表连接,以便每个公司只给出 1 个响应,而不是每个事件的结果

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

感谢您的帮助!

我想将所有在其任何服务器文件中上传的 companyName 条目输出为:

companies.companyName - count(files.fileID) - sum(serverFiles.uniqueUploads)

Initech Ltd.   -  11 -  24931
Epiphyte Inc. - 23 - 938821

以下是我的表结构的相关部分:

表:公司

companyID (INT)  -  companyName (TEXT)

表:事件

campaignID(INT)  -  companyID (INT)

表:文件

fileID (INT)  -  campaignID (INT)

表:服务器文件 serverFileID (INT) - fileID (INT) - uniqueUploads(INT)

每个公司可以有多个事件。

每个事件可以有多个文件。

每个文件可以有多个serverFiles

我尝试使用的查询如下:

SELECT companies.companyName, sum(serverFiles.uniqueUploads), count(files.fileID)
FROM companies
INNER JOIN campaigns on companies.companyID = campaigns.companyID
INNER JOIN files on files.campaign = campaigns.campaignID
LEFT OUTER JOIN serverFiles on serverfiles.fileID = files.fileID
GROUP BY serverFiles.uniqueUploads, files.fileID
ORDER BY sum(serverFiles.uniqueUploads) DESC;

但是,这会为每个公司返回多个条目(因为它会为每个公司创建多个输出 - 为公司下的每个事件创建一个输出)。

例如:

companies.companyName - count(files.fileID) - sum(serverFiles.uniqueUploads)

Initech Ltd.   -  2 -  234234     (for initech campaign1)
Initech Ltd. - 4 - 223323 (for initech campaign2)
Epiphyte Inc. - 13 - 6434 (for epiphyte campaign1)
Initech Ltd. - 1 - 554 (for initech campaign3)
Epiphyte Inc. - 13 - 7544 (for epiphyte campaign2)
Epiphyte Inc. - 11 - 74545 (for epiphyte campaign3)
Epiphyte Inc. - 23 - 456544 (for epiphyte campaign4)

如何将查询更改为只为每个公司返回一个响应,汇总该公司下的所有广告系列。

非常感谢您的帮助。

最佳答案

我认为您的查询很好,除了 GROUP BY 子句。应该是

GROUP BY companies.companyName

关于mysql - 4 表连接,以便每个公司只给出 1 个响应,而不是每个事件的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1407359/

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