2015-07-21 2 views
1

У меня есть две таблицы в MySql. table1:MySql LEFT JOIN возвращает только одну строку NULL из другой таблицы

id account_no 
1 123 
2 124 
3 125 
4 126 
5 127 

table2:

id amount 
1 200 
1 300 
2 400 
3 300 
2 100 

Мой желаемый результат:

account_no total_amount 
123 500 
124 500 
125 300 
126 0 
127 0 

Мой запрос выглядит следующим образом

SELECT a.account_no AS 'account_no', IFNULL(SUM(b.amount),0) AS 'total_amount' 
FROM table1 a 
LEFT JOIN table2 b 
ON a.id = b.id 
GROUP BY b.id ORDER BY a.account_no 

Но с этим запросом я получение onl y это

account_no total_amount 
123 500 
124 500 
125 300 
126 0 

Может ли кто-нибудь мне помочь?

ответ

0

Попробуйте этот.

SELECT a.account_no AS 'account_no', IFNULL(SUM(b.amount),0) AS 'total_amount' 
FROM table1 a 
LEFT JOIN table2 b 
ON a.id = b.id 
GROUP BY a.account_no ORDER BY a.account_no 

Вместо b.bid, который имеет только 3 уникальное значение для группового использования a.account_no, который будет иметь все уникальную учетную запись.

Сообщите мне о любом запросе. :)

+0

Спасибо. Это помогло :) – rin2

0

Вот почему вы GROUP BY b.id. В вашем случае b.id id null для a.id 126 и 127 - null и будет сгруппирован.

Результат вашего присоединиться к две последние строки будут:

a.id account_no b.id total amount 
4 126 null null 
5 127 null null 

и эти строки группируются в один ряд.

+0

жаль, что я не получаю его. У меня есть GROUP BY b.id в моем запросе – rin2

+0

@ rin2, и это сгруппирует обе строки в одну строку, потому что она группирует все строки с буквой «b.id = null» в одну строку. – Jens

0

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

SELECT a.account_no AS 'account_no', IFNULL(SUM(b.amount),0) AS 'total_amount' 
FROM table1 a 
LEFT JOIN table2 b 
ON a.id = b.id 
GROUP BY a.account_no ORDER BY a.account_no 

Выравнивание по левому краю Возвращать все данные левой таблицы, с нулем, если правая таблица не содержит данных, при использовании группы по вам нужно дать ключевой столбец из левой таблицы, потому что группа получает уникальные строки

, пожалуйста, посмотрите, дайте мне знать, если возникнут проблемы.

Благодаря Amit

Смежные вопросы