Дублированные значения, используя INNER JOIN в MySQL - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть 3 таблицы, я хочу получить общую сумму, но я не получаю правильных результатов.

Первая таблица (инвесторы)

id investor_id 

1     27
2     27
3     29
4     30
5     31

Вторая таблица (платежи)

id investor_id

1   27
2   27
3   28
4   29
5   30
6   31
7   27

Третья таблица (счет)

id payments_id billed

1      1        189
2      2        300   
3      3        500
4      4        700
5      5        200
6      6        300

ЗДЕСЬ мой запрос

SELECT SUM(billed.billed)
FROM billed AS billed
INNER JOIN payments AS payments ON billed.payments_id = payments.id
INNER JOIN investors AS investors ON payments.investor_id = investors.investor_id

вместо получения только 1689, я получаю результаты 2178

я действительно застрял с моим ответом, есть ли способ сделать это, просто используя запрос?

1 Ответ

0 голосов
/ 23 сентября 2019

Если вы просто хотите получить общую сумму по счетам, просто запросите эту таблицу напрямую, присоединяться не нужно:

SELECT SUM(billed) FROM billed

Если по какой-то причине вам нужно JOIN, я выбираю отдельных инвесторовв подзапросе, затем присоединитесь к нему:

SELECT SUM(billed.billed)
FROM billed AS billed
INNER JOIN payments AS payments ON billed.payments_id = payments.id
INNER JOIN (SELECT DISCTINCT investors FROM investors) AS investors ON payments.investor_id = investors.investor_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...