Я новичок в 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
. Так, например, если я запросил uid
2, он должен вернуть сумму размеров от id
9 и 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