结合两个mysql Select语句,以便我可以对结果数据进行排序

时间:2009-08-27 18:15:51

标签: mysql database select

我想知道是否有办法将这两个查询简化为一个查询。我希望能够在将数据从数据库中拉出来对数据进行排序,这样我就可以进行数据处理。

表格设置如下:

table: files
------------------------
fileID (INT) | domainID (INT)
------------------------

table: domains
------------------------
domainID (INT) | domainName (text)
------------------------

table: serverFiles
------------------------
fileID (INT) | uniqueUploads (INT)
------------------------

我目前正在运行此查询:

SELECT domains.domainName, files.fileID, COUNT(files.fileID) 
FROM domains, files 
WHERE files.domainID = domains.domainID 
GROUP BY files.domainID;

然后循环查询该查询的结果我使用第一个查询生成的fileID运行第二个查询($ fileIDFromFirstQuery):

SELECT serverFiles.uniqueUploads 
FROM serverFiles 
WHERE serverFiles.fileID = '$fileIDFromFirstQuery';

结果如下:

Domains     |   Files with Domain | Unique Uploads 
--------------------------------------------------
domain1.com         32             1412
domain2.com         21              699
domain3.com             52                  293

1 个答案:

答案 0 :(得分:1)

我认为这应该有效:

SELECT domains.domainID, domainName, COUNT(*), SUM(uniqueUploads)
FROM domains
INNER JOIN files ON files.domainID = domains.domainID
INNER JOIN serverFiles on serverFiles.fileID = files.fileID
GROUP BY domains.domainID, domainName

ETA:

也许我没有在这里看到一切,但为什么不摆脱serverFiles表并在文件表上放置“uniqueUploads”?除非你在多个域之间共享文件,否则它会有意义。