programing

테이블의 ID에서 다른 테이블의 ID로 MariaDB 합계 크기

newsource 2023. 7. 24. 22:31

테이블의 ID에서 다른 테이블의 ID로 MariaDB 합계 크기

저는 SQL 질의에 완전히 초보자이기 때문에, 여기서 이 질문을 해도 괜찮길 바랍니다.내 MariaDB에는 다음과 같은 두 개의 테이블이 있습니다.

downloads
(`uid`, `tstamp`, `fid`, `notes`) VALUES
(1, 1352001731, 14, ''),
(1, 1357403888, 20, ''),
(2, 1357432414, 9,  ''),
(2, 1357544813, 4,  ''),
(1, 1357653803, 12, '');

files
(`id`, `guid`, `uid`, `size`) VALUES
(12, 35, 57, 10910074),
(20, 47, 42, 9348993),
(11, 35, 57, 76510074),
(47, 47, 52, 45548993),
(9,  35, 37, 1560074),
(4,  47, 22, 6788993),
(15, 51, 12, 323450993);

저는 특히 질문하고 싶습니다.uid에서downloads의 크기를 표로 정리합니다.id에서 일치하는files상응하는fid에 있는downloads예를 들어, 제가 질문을 했다면,uid2 그런 다음 크기의 합계를 반환해야 합니다.id9인치와 4인치files(8349067).조언이나 조언을 해주시면 감사하겠습니다.

전체 스키마는 다음과 같습니다.

https://pastebin.com/Bb96ZWMw

솔루션: 승인된 답변을 약간 변경하면 원하는 결과를 얻을 수 있습니다.

SELECT SUM(size)
FROM   downloads d
JOIN   files f ON d.fid = f.id
WHERE  d.uid = 2

저는 두 테이블을 합해서 크기를 합할 것입니다.

SELECT   d.uid, SUM(size)
FROM     downloads d
JOIN     files f ON d.fid = f.id
GROUP BY d.uid

만약 당신이 단지 특정한 것에 관심이 있다면.uid당신은 그것을 가지고 있을 수 있습니다.where절을 지정하고 그룹화를 취소합니다.

SELECT SUM(size)
FROM   downloads d
JOIN   files f ON d.fid = f.id
WHERE  d.uid = ...

언급URL : https://stackoverflow.com/questions/61131816/mariadb-sum-sizes-from-id-in-table-to-ids-in-another