Проблемы с MySQl-запросом - PullRequest
1 голос
/ 03 августа 2010

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

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

Неизвестный столбец «c.access» в «on оговорке».

Я убедился, что столбец существует в указанной таблице.Теперь я в тупике.Я открыл анализатор 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

Ответы [ 2 ]

5 голосов
/ 03 августа 2010
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 
0 голосов
/ 03 августа 2010

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

: -

...