Как исправить эту ошибку при создании виртуальной таблицы в MySQL? - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь создать виртуальную таблицу, которая позволит мне искать значения в поле псевдонима таблицы * _categories, когда у меня есть только доступ к идентификатору категории в области видимости, с которой я работаю в. (не уверен, что это все правильные термины).

В таблице * _categories идентификатор находится в столбце id, в таблице * _content идентификатор категории находится в столбце catid.

Вот что у меня так далеко:

CREATE VIEW articles AS SELECT article.*,
category.alias AS category_alias,
FROM s5vuq_content AS article LEFT JOIN s5vuq_categories AS category ON category.'id' = article.'catid'

Но я получаю эту ошибку:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘FROM s5vuq_content AS article
LEFT JOIN s5vuq_categories AS category ON
catego’ at line 3

Любая помощь будет оценена.

1 Ответ

2 голосов
/ 21 марта 2020

Ваша проблема опечатка, но так как у вас их много, я публикую этот ответ. Вот ваш исправленный запрос:

CREATE VIEW articles AS
SELECT article.*, category.alias AS category_alias   -- I removed a comma here
FROM s5vuq_content AS article
LEFT JOIN s5vuq_categories AS category
    ON category.id = article.catid;        -- column names don't take single quotes

В дополнение к висячей запятой в конце оператора SELECT вы также помещали имена столбцов в предложении ON в одинарных кавычках. Одинарные кавычки в основном используются для строковых литералов в SQL. Если вам нужно экранировать имена столбцов в MySQL, вы можете использовать двойные кавычки или обратные кавычки. Итак, оба из следующих действий должны быть действительными:

ON category."id" = article."catid"
ON category.`id` = article.`catid`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...