Что такое максимальная сумма структуры sql для MySQL?

#mysql #sql

#mysql #sql

Вопрос:

TABLE_A имеет поле (идентификатор, имя)

 --------------------------------------
id   |    name
--------------------------------------
1   |     X

2   |     Y

3   |     Z
--------------------------------------
  

TABLE_B имеет поле (id, table_a_id, amount)

 =====================================
id  |   table_a_id   |  amount 
=====================================
1   |    1                | 10

2   |    1                |  5

3   |    2                |  5 

4   |    1                |  5

5   |    3                |  20

6   |    1                |  10

=======================================
  

Я хочу отобразить результат так. Пожалуйста, помогите со структурой запросов для MySQL.Спасибо.

 =====================================
name    |    amount
=====================================
X           |    30

Z           |    20

Y           |    5
--------------------------------------------------------------
  

Ответ №1:

Это то, что вам нужно:

 select max(ta.name) name, coalesce(sum(tb.amount), 0) amount
from Table_A ta
left join Table_B tb
on ta.id = tb.table_a_id
group by ta.id
  

Это LEFT JOIN гарантирует, что если у вас есть W в таблице A без строк в таблице B, W будет отображаться.