← Все вопросы

Задание 3 КЕГЭ: реляционная база — как делать выборку по нескольким таблицам?

Задан 2 месяца назад389 просмотров3 ответа
10

Третье задание теперь про реляционные БД: дают две-три связанные таблицы (например, «Фирмы», «Поставки», «Товары») и условие вроде «на какую сумму фирма X поставила товаров категории Y». Считать руками по таблицам муторно. Можно ли как-то систематизировать?

3 ответа

19
✓ Принятый ответ — помог автору

На самом экзамене таблицы дают файлами, и удобнее не SQL, а пройтись по строкам кодом, связывая по ключам.

# таблицы как списки словарей (после чтения из файла)
# идея: связь по общему ID
firms = {row['id']: row for row in firms_rows}
total = 0
for supply in supplies_rows:
    if firms[supply['firm_id']]['name'] == 'Заря':
        total += int(supply['amount'])
print(total)

Ключевая мысль задания 3 — понять, какое поле в одной таблице ссылается на ключ другой (внешний ключ → первичный), и «склеить» строки по нему. Дальше это просто фильтр и сумма. Если таблицы маленькие, многие решают даже вручную, выписав связи, но через словарь по id ошибиться почти невозможно.

Владислав Рыженков Словарь по первичному ключу — и связывание тривиально · 2 месяца назад
6

Свяжи таблицы по общему полю (внешний ключ ссылается на первичный), потом фильтр + сумма.

4

Можно и через pandas merge, но на экзамене обычно проще словарём по id, без лишних библиотек.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект