> Как делать выборку связанных данных в чистом SQL (Python)
Уровень: middle · Роль: backend · Язык: Python · Категория: Технические вопросы
Компании: EXCORP
Стек: Python
> Пример ответа
Выборка связанных данных в чистом SQL выполняется с помощью оператора JOIN. Основные типы: INNER JOIN, LEFT JOIN, RIGHT JOIN и FULL JOIN. Для примера возьмём две таблицы: users (id, name) и orders (id, user_id, amount). Чтобы получить всех пользователей и их заказы, используем LEFT JOIN:
SQLSELECT users.name, orders.amountFROM usersLEFT JOIN orders ON users.id = orders.user_id;
Если нужны только пользователи, у которых есть заказы, применяем INNER JOIN:
SQLSELECT users.name, orders.amountFROM usersINNER JOIN orders ON users.id = orders.user_id;
Для более сложных связей (например, многие-ко-многим) требуется промежуточная таблица. Допустим, есть students, courses и enrollments. Выборка студентов и их курсов:
SQLSELECT students.name, courses.titleFROM studentsJOIN enrollments ON students.id = enrollments.student_idJOIN courses ON enrollments.course_id = courses.id;
В Python (с использованием библиотеки sqlite3 или psycopg2) такой запрос выполняется через курсор:
PYTHONimport sqlite3conn = sqlite3.connect('database.db')cursor = conn.cursor()cursor.execute("""SELECT users.name, orders.amountFROM usersLEFT JOIN orders ON users.id = orders.user_id""")rows = cursor.fetchall()
Ключевой момент: чистый SQL не требует ORM, но даёт полный контроль над производительностью и структурой запроса.
> Похожие задачи по Python
Как хранить книги и авторов в базе данных при связи многие-ко-многим
Какие метрики и процессы оценки успеха разработчика используются
> Похожие задачи по backend
Как планировать количество inodes при создании файловой системы
Что такое дженерики в TypeScript и для чего они используются
Как хранить книги и авторов в базе данных при связи многие-ко-многим
Какие метрики и процессы оценки успеха разработчика используются
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью