НачатьНачать бесплатно

Объединения таблиц

Даже если вы не выбираете столбцы из обеих таблиц или между ними не задана явная связь, вы всё равно можете использовать метод .join() для объединения таблиц и получения дополнительных данных. Метод join() принимает объект таблицы, которую нужно присоединить, в качестве первого аргумента, а условие связи между таблицами — в качестве второго. Затем используйте метод .select_from() для оператора SELECT, чтобы обернуть условие объединения. Например, в видео Джейсон выполнил следующий код, чтобы объединить таблицу census с таблицей state_fact так, чтобы столбец state таблицы census соответствовал столбцу name таблицы state_fact.

stmt = stmt.select_from(
    census.join(
        state_fact, census.columns.state == 
        state_fact.columns.name)

Это упражнение является частью курса

Введение в базы данных на Python

Посмотреть курс

Инструкции к упражнению

  • Постройте запрос для выбора ВСЕХ столбцов из таблиц census и state_fact. Например, чтобы выбрать все столбцы из таблиц employees и sales, используйте stmt = select([employees, sales]).
  • Добавьте к stmt вызов select_from, чтобы объединить таблицу census с таблицей state_fact по столбцу state из census и столбцу name из state_fact.
  • Выполните запрос, получите первую строку результата и сохраните её в переменную result. Этот код уже написан.
  • Нажмите Отправить ответ, чтобы перебрать ключи объекта result в цикле и вывести каждый ключ вместе с его значением!

Интерактивное практическое упражнение

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

# Build a statement to select the census and state_fact tables: stmt
stmt = select([____, ____])

# Add a select_from clause that wraps a join for the census and state_fact
# tables where the census state column and state_fact name column match
stmt_join = stmt.select_from(
    ____(____, census.columns.____ == state_fact.columns.____))

# Execute the statement and get the first result: result
result = connection.execute(stmt_join).first()

# Loop over the keys in the result object and print the key and value
for key in result.keys():
    print(key, getattr(result, key))
Редактировать и запускать код