РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
238 of 711 menu

Метод select_from

Метод select_from класса Select задает источник данных, который будет использован в секции FROM итогового SQL-запроса. Первым параметром метод принимает таблицу, подзапрос или иную сущность, от которой нужно строить выборку. Это полезно, когда колонки выбираются не из той таблицы, которая определяется автоматически.

Синтаксис

select_from(fromclause)

Пример

Давайте создадим таблицу articles и выполним выборку с явным указанием источника:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, select engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), ) metadata.create_all(engine) stmt = select(articles.c.id, articles.c.title).select_from(articles) with engine.connect() as conn: res = conn.execute(stmt) print(res.all())

Результат выполнения кода:

[]

Пример

Давайте добавим строки в таблицу и посмотрим итоговый SQL-запрос:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, select engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), ) metadata.create_all(engine) with engine.connect() as conn: conn.execute(articles.insert(), [ {'id': 1, 'title': 'article 1'}, {'id': 2, 'title': 'article 2'}, ]) stmt = select(articles.c.title).select_from(articles) print(stmt)

Итоговый SQL запрос:

SELECT articles.title FROM articles

Пример

Давайте используем select_from для явного соединения двух таблиц через join:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, select engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), ) users = Table( 'users', metadata, Column('id', Integer, primary_key=True), Column('name', String), ) metadata.create_all(engine) stmt = select(articles.c.title, users.c.name).select_from( articles.join(users, articles.c.id == users.c.id) ) with engine.connect() as conn: res = conn.execute(stmt) print(res.all())

Результат выполнения кода:

[]

Смотрите также

  • класс Select,
    который представляет конструктор SELECT-запроса
  • метод join,
    который соединяет таблицы в запросе
  • метод where,
    который задает условие фильтрации
  • метод select_from,
    который задает источник данных для FROM
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить