> Как делать выборку связанных данных в чистом 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:

SQL
SELECT users.name, orders.amount
FROM users
LEFT JOIN orders ON users.id = orders.user_id;

Если нужны только пользователи, у которых есть заказы, применяем INNER JOIN:

SQL
SELECT users.name, orders.amount
FROM users
INNER JOIN orders ON users.id = orders.user_id;

Для более сложных связей (например, многие-ко-многим) требуется промежуточная таблица. Допустим, есть students, courses и enrollments. Выборка студентов и их курсов:

SQL
SELECT students.name, courses.title
FROM students
JOIN enrollments ON students.id = enrollments.student_id
JOIN courses ON enrollments.course_id = courses.id;

В Python (с использованием библиотеки sqlite3 или psycopg2) такой запрос выполняется через курсор:

PYTHON
import sqlite3
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
cursor.execute("""
SELECT users.name, orders.amount
FROM users
LEFT JOIN orders ON users.id = orders.user_id
""")
rows = cursor.fetchall()

Ключевой момент: чистый SQL не требует ORM, но даёт полный контроль над производительностью и структурой запроса.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью