Ошибка при попытке выбора со списками, разделенными запятыми

Мне нужно получить данные, показанные из базы данных mysql. Код ниже, я думаю, представляет то, что я пытаюсь сделать, но выполнение определенно неправильное. Что мне нужно изменить, чтобы заставить это работать?

SELECT 
up.model AS style,
up.list_price AS price,
GROUP_CONCAT(t1.name) AS colorlist,
GROUP_CONCAT(t2.name) AS sizelist,
nr.title,
nr.body AS description,
FROM 
uc_products up,
(SELECT c.name FROM uc_attributes a 
       JOIN uc_product_options b ON (b.nid = a.nid) 
       JOIN uc_attribute_options c ON (c.oid = b.oid AND c.aid = 6) 
       WHERE a.nid = up.nid) AS t1,
(SELECT c.name FROM uc_attributes a 
       JOIN uc_product_options b ON (b.nid = a.nid) 
       JOIN uc_attribute_options c ON (c.oid = b.oid AND c.aid = 9) 
       WHERE a.nid = up.nid) AS t2
LEFT JOIN node_revisions nr ON (nr.nid = up.nid)

Ошибка:

1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «FROM uc_products up» (SELECT c.name FROM uc_attributes a JOIN uc_product_options» в строке 8


person Magic Lasso    schedule 06.08.2013    source источник
comment
Что на самом деле происходит, когда вы запускаете это? Рассмотрите возможность добавления небольшого примера с ожидаемым выводом и либо фактическим выводом, либо ошибкой, если вы ее получаете.   -  person Michelle    schedule 07.08.2013


Ответы (2)


Я думаю проблема в запятой перед FROM. Попробуй это:

SELECT 
up.model AS style,
up.list_price AS price,
GROUP_CONCAT(t1.name) AS colorlist,
GROUP_CONCAT(t2.name) AS sizelist,
nr.title,
nr.body AS description
FROM 
uc_products up,
(SELECT c.name FROM uc_attributes a JOIN uc_product_options b ON (b.nid = a.nid) JOIN uc_attribute_options c ON (c.oid = b.oid AND c.aid = 6) WHERE a.nid = up.nid) AS t1,
(SELECT c.name FROM uc_attributes a JOIN uc_product_options b ON (b.nid = a.nid) JOIN uc_attribute_options c ON (c.oid = b.oid AND c.aid = 9) WHERE a.nid = up.nid) AS t2
LEFT JOIN node_revisions nr ON (nr.nid = up.nid)
person Endrju    schedule 06.08.2013
comment
OH GEEZ, когда mysql выдает вам ошибки, они всегда выдают вам текст сразу после ошибки. Я сходил с ума, глядя на FROM, задаваясь вопросом, что вызывает ошибку, и каким-то образом я пропустил эту запятую. большое тебе спасибо. - person Magic Lasso; 07.08.2013
comment
Пожалуйста. Я проделывал это столько раз, что теперь сразу замечаю :-) - person Endrju; 07.08.2013

У вас есть лишняя запятая после «Описание AS», которую необходимо удалить.

person noz    schedule 06.08.2013