Мне было интересно, есть ли способ упростить это с двух запросов до одного. Я хотел бы иметь возможность сортировать данные по мере их извлечения из базы данных, и это позволило бы мне это сделать.
Таблицы настроены так:
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