Что такое оператор WITH в БД

Python Middle Без компании
Что такое оператор WITH в БД
Ответы
Оператор `WITH` (Common Table Expression, CTE) позволяет создавать временные результаты запроса, которые можно использовать в основном запросе. Он улучшает читаемость и поддерживает рекурсивные запросы. Пример: ``` WITH sales_summary AS ( SELECT product_id, SUM(quantity) AS total_quantity FROM sales GROUP BY product_id ) SELECT p.name, s.total_quantity FROM products p JOIN sales_summary s ON p.id = s.product_id; ``` Особенности: - CTE существует только во время выполнения запроса - Может быть рекурсивным (с `WITH RECURSIVE`) - Упрощает сложные запросы, разбивая их на части - Альтернатива подзапросам и временным таблицам Рекурсивный пример: ``` WITH RECURSIVE hierarchy AS ( SELECT id, name, parent_id FROM employees WHERE id = 1 UNION ALL SELECT e.id, e.name, e.parent_id FROM employees e JOIN hierarchy h ON e.parent_id = h.id ) SELECT * FROM hierarchy; ```