Таблица по выборке онлайн урок.


Иногда бывает необходимо сохранить результирующую таблицу как отдельную таблицу с конкретным названием. Для этого, фактически, необходимо совместить операторы CREATE TABLE и SELECT - первый создаст таблицу, а второй предоставит результирующую таблицу как основу. Это выглядит так:

CREATE TABLE my_new_table AS (SELECT ... )

Создадим простую таблицу на основе запроса SELECT 'hello':

CREATE TABLE test_table_1 AS (SELECT 'hello')

При этом будет создана таблица с названием test_table_1, в которой будет столбец hello со значением 'hello'.

Попробуем что-то сложнее. Создадим таблицу по результатам предыдущего урока. Запрос из предыдущего урока выглядит так:

SELECT c.id client_id, c.name as client, GROUP_CONCAT(DISTINCT pl.name) 
FROM customers c
JOIN orders o ON c.id = o.customer_id
JOIN order_details od ON od.order_id = o.id
JOIN products p ON p.id = od.product_id
JOIN product_lines pl ON pl.id = p.product_line_id GROUP BY c.id

Осталось записать оператор создания таблицы и название таблицы:

CREATE TABLE test_table_2 AS (
SELECT c.id client_id, c.name as client, GROUP_CONCAT(DISTINCT pl.name)
FROM customers c
JOIN orders o ON c.id = o.customer_id
JOIN order_details od ON od.order_id = o.id
JOIN products p ON p.id = od.product_id
JOIN product_lines pl ON pl.id = p.product_line_id GROUP BY c.id
)

Таким образом получим таблицу под названием test_table_2 в которой будут сохранены клиенты и линейки товаров, которые они заказывали.