2010-08-03 1 views
1

Я не трачу много времени в MySQL, но меня попросили изучить проблему с сайтом моей церкви. Это было довольно давно, и я пытаюсь вернуть его и запустить. Исходный сайт был выполнен в Mambo 4.5.3, который является старой версией. В какой-то момент я обновлю его, но я просто хочу, чтобы он работал на данный момент.Проблемы с запросом на MySQl

У меня возникла проблема с построенным в Мамбо запросом ниже. В тех случаях, когда администрация сайта пытается получить доступ к страницам, я получаю сообщение об ошибке:

Неизвестная колонка 'c.access' в 'on clause'.

Я проверил, что столбец существует в указанной таблице. Теперь я в тупике. Я открыл анализатор MySQL Query и вставил запрос, и я получаю такое же сообщение об ошибке с кодом 1054. Есть ли у кого-нибудь идеи?

SELECT 
    c.*, 
    g.name AS groupname, 
    cc.name, 
    u.name AS editor, 
    f.content_id AS frontpage, 
    s.title AS section_name, 
    v.name AS author 
FROM 
    mos_content AS c, 
    mos_categories AS cc, 
    mos_sections AS s 
    LEFT JOIN mos_groups AS g ON g.id = c.access 
    LEFT JOIN mos_users AS u ON u.id = c.checked_out 
    LEFT JOIN mos_users AS v ON v.id = c.created_by 
    LEFT JOIN mos_content_frontpage AS f ON f.content_id = c.id 
WHERE 
    c.state >= 0 
    AND c.catid=cc.id 
    AND cc.section=s.id 
    AND s.scope='content' 
ORDER BY 
    s.title, 
    c.catid, 
    cc.ordering, 
    cc.title, 
    c.ordering 
LIMIT 
    0,10 
+0

, так что вы уверены, что столбец с именем «доступ» в таблице MOS_CONTENT? – Fosco

+0

Таблица mos_content должна иметь столбец доступа, я думаю, что нет никакой другой причины для получения этой ошибки – cesarnicola

ответ

5
SELECT 
    c.*, 
    g.name AS groupname, 
    cc.name, 
    u.name AS editor, 
    f.content_id AS frontpage, 
    s.title AS section_name, 
    v.name AS author 
FROM 
    mos_content AS c 
    INNER JOIN mos_categories AS cc on c.catid=cc.id 
    INNER JOIN mos_sections AS s on cc.section=s.id 
    LEFT JOIN mos_groups AS g ON g.id = c.access 
    LEFT JOIN mos_users AS u ON u.id = c.checked_out 
    LEFT JOIN mos_users AS v ON v.id = c.created_by 
    LEFT JOIN mos_content_frontpage AS f ON f.content_id = c.id 
WHERE 
    c.state >= 0 
    AND s.scope='content' 
ORDER BY 
    s.title, 
    c.catid, 
    cc.ordering, 
    cc.title, 
    c.ordering 
LIMIT 
    0,10 
+2

haha, только что закончил печатать одну и ту же вещь –

+0

+1: Или группа объединяется с круглыми скобками – Mchl

+1

@Joe Работала как шарм. Благодаря! –

0

Текст error 1052 сообщение на самом деле что-то вроде Column 'foo' in %s is ambiguous. Обычно это происходит, когда вы присоединяетесь к таблицам с одинаковыми именами и ссылаетесь на них без префикса таблицы.

: -?