Получение ошибки при создании представления из 3 таблиц

Мне нужно создать представление в MySQL, это код:

CREATE VIEW dashboard_sales AS (
    SELECT o.order_id,o.order_date,o.order_status,op.op_status,oi.oi_qty 
    FROM
        order o
    LEFT JOIN
        order_items oi
    ON
        o.order_id = oi.order_id
    LEFT JOIN
        order_payment op
    ON 
        o.order_id = op.order_id
    GROUP BY o.order_id
);

но когда я запускаю в phpmyadmin, я получаю сообщение об ошибке:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'order o LEFT JOIN order_items oi ON o.order_id = oi.' at line 4

Как решить эту проблему?

Удалите круглые скобки в инструкции создания представления. Вы уверены, что этот код действительно работал в MySQL без ошибок?

Tim Biegeleisen 12.06.2019 07:02
order — одно из зарезервированных ключевых слов в MySQL. Переименуйте имя таблицы в незарезервированное ключевое слово или экранируйте его обратной галочкой `. Также GROUP BY работает с любой агрегатной функцией, такой как MAX(), COUNT(), ...
Arulkumar 12.06.2019 07:19
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
2
33
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вам нужна обратная кавычка для order

CREATE VIEW dashboard_sales AS (
    SELECT o.order_id,o.order_date,o.order_status,op.op_status,oi.oi_qty 
    FROM `order` o LEFT JOIN order_items oi
    ON o.order_id = oi.order_id
    LEFT JOIN order_payment op
    ON o.order_id = op.order_id
);

Когда вы используете ключевые слова для названия таблиц, вы должны поместить таблицу между скобками.

CREATE VIEW dashboard_sales AS (
SELECT o.order_id,o.order_date,o.order_status,op.op_status,oi.oi_qty 
FROM
    [order] o
LEFT JOIN
    order_items oi
ON
    o.order_id = oi.order_id
LEFT JOIN
    order_payment op
ON 
    o.order_id = op.order_id
GROUP BY o.order_id

);

Другие вопросы по теме