Даны две таблицы Persosn и Payments. Один-ко-многим. Справа описание. Напишите запрос, который выводит name и value

5. Вывести имена работников и их начисления

Условие задачи:
Даны две таблицы со связью один-ко-многим:

  • Persons — работники;

  • Payments — ежемесячные начисления работников.

Необходимо написать SQL-запрос, который выводит имя работника и сумму каждого его начисления.

Код:

Persons

id | name
---|------
1  | Petya
2  | Vasya
3  | Kolya
Payments

id | persons_id | value
---|------------|------
1  | 1          | 10
2  | 1          | 20
3  | 3          | 15

Спойлеры к решению

Подсказки
💡 Таблицы связаны через Persons.id = Payments.persons_id.
💡 Для объединения данных используй JOIN.
💡 Из Persons нужно получить name, а из Paymentsvalue.

Решение
SELECT
    p.name,
    pay.value
FROM Persons p
JOIN Payments pay
    ON pay.persons_id = p.id;

JOIN связывает каждое начисление с соответствующим работником.

Результат:

name  | value
------|------
Petya | 10
Petya | 20
Kolya | 15

Vasya в результат не попадёт, поскольку у него нет записей в таблице Payments.

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