ПочатиПочніть безкоштовно

Обʼєднання (Joins)

Якщо ви не вибираєте стовпці з обох таблиць або між таблицями не визначено звʼязок, усе одно можна скористатися методом .join() для таблиці, щоб обʼєднати її з іншою таблицею й отримати додаткові дані для вашого запиту. join() приймає обʼєкт таблиці, яку потрібно приєднати, як перший аргумент, і умову, що визначає звʼязок між таблицями, як другий аргумент. Нарешті, застосуйте метод .select_from() до виразу select, щоб обгорнути секцію join. Наприклад, у відео Джейсон виконав такий код, щоб обʼєднати таблицю 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]).
  • Додайте select_from до stmt, щоб обʼєднати таблицю census з таблицею state_fact за стовпцем state у census і стовпцем name у таблиці state_fact.
  • Виконайте вираз, щоб отримати перший результат, і збережіть його як 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))
Редагувати та запускати код