mysql - использование зарезервированных имен в качестве имени столбца - PullRequest
1 голос
/ 17 октября 2011

Я пытаюсь выполнить этот запрос, но не запускается

SELECT ng.parent_id, ng.tab, ng.post_id, ng.ORDER, ng.cluster_key, pd.id, pd.slug, pd.link_text, pd.parent
FROM `ecom_navigation` AS ng, `ecom_page_data` AS pd
WHERE ng.cluster_key = 'primary'
AND ng.tab = '0'
AND ng.parent_id = '1'pd.id = ng.post_id
ORDER BY ng.order

и получаю ошибку

В синтаксисе SQL возникла ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с 'pd.id = ng.post_id ORDER BY ng.order' в строке 1

я пробовал `ng.order` and `ng`. order`, но, похоже, все еще не может заставить его работать.

Любая помощь очень ценится

Ответы [ 3 ]

2 голосов
/ 17 октября 2011

Я думаю, что вам просто не хватает and:

AND ng.parent_id = '1'pd.id = ng.post_id

, вероятно, должно быть:

AND ng.parent_id = '1'
AND pd.id = ng.post_id

Или лучше, поместите условие соединения в соединение (и нене указывайте свои числа, если они не являются строками):

SELECT ng.parent_id, ng.tab, ng.post_id, ng.ORDER, ng.cluster_key, pd.id, pd.slug, pd.link_text, pd.parent
FROM `ecom_navigation` AS ng join `ecom_page_data` AS pd on ng.post_id = pd.id
WHERE ng.cluster_key = 'primary'
AND ng.tab = 0        -- Leave the quotes on if tab is a string
AND ng.parent_id = 1  -- Leave the quotes on if parent_id is a string
ORDER BY ng.order
1 голос
/ 17 октября 2011

попробуй

ng. order

если бы я мог получить галочки, чтобы показать в этом редакторе, то они были бы там, но, кажется, их удалить

обратные метки используются для экранирования зарезервированных слов и пробелов в именах столбцов и т. Д.

0 голосов
/ 17 октября 2011

Измените ваш запрос на (у вас ' неуместно)

SELECT ng.parent_id, ng.tab, ng.post_id, ng.ORDER, ng.cluster_key, pd.id, pd.slug, pd.link_text, pd.parent
FROM `ecom_navigation` AS ng, `ecom_page_data` AS pd
WHERE ng.cluster_key = 'primary'
AND ng.tab = '0'
AND ng.parent_id =  '1' AND pd.id = ng.post_id
ORDER BY ng.order

OR

SELECT ng.parent_id, ng.tab, ng.post_id, ng.ORDER, ng.cluster_key, pd.id, pd.slug, pd.link_text, pd.parent
FROM `ecom_navigation` AS ng, `ecom_page_data` AS pd
WHERE ng.cluster_key = 'primary'
AND ng.tab = '0'
AND ng.parent_id =  1 AND pd.id = ng.post_id
ORDER BY ng.order
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...