Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ошибка, ругается, что колонка отсутстует
 
 автор: Richard Ferlow   (15.05.2008 в 21:36)   письмо автору
 
 

Вот такой запрос
SQL QUERY: SELECT
    `p`.*,
    `h`.`file_name`,
    `h`.`alias` AS `hand_alias`,
    `pt`.`file` AS `template_file`,
    `pt`.`file_print` AS `template_file_print`
FROM
    `mstr_pages` AS `p`,
    `mstr_handlers` AS `h` INNER JOIN
    `mstr_page_templates` AS `pt` ON `pt`.`alias`=`p`.`page_template`
WHERE
    `p`.`id_handler` = `h`.`id` AND
    `h`.`visible` = 1 AND
    `p`.`visible` = 1 AND
    `p`.`is_hidden` = 0 AND
    `p`.`alias` = 'main' AND
    `p`.`lang` = 0
LIMIT 1REASON: Unknown column 'p.page_template' in 'on clause'

Не могу понять, почему выдает ошибку - p.page_template - есть такая колонка

   
 
 автор: Trianon   (15.05.2008 в 21:45)   письмо автору
 
   для: Richard Ferlow   (15.05.2008 в 21:36)
 

чем , отличается от inner join ?

   
 
 автор: Richard Ferlow   (15.05.2008 в 21:48)   письмо автору
 
   для: Trianon   (15.05.2008 в 21:45)
 

Я, к сожалению, не знаю.

Ситуация такова - на прежнем месте сайт работает как и нужно.

Необходимо перенести на новый хостинг. И там вот такая вот ошибка и появляется. Почему, я не могу понять.

На предыдущем хостинге была Mysql 4, а здесь 5, может в этом загвоздка ?

   
 
 автор: Trianon   (15.05.2008 в 22:06)   письмо автору
 
   для: Richard Ferlow   (15.05.2008 в 21:48)
 

SELECT
    `p`.*,
    `h`.`file_name`,
    `h`.`alias` AS `hand_alias`,
    `pt`.`file` AS `template_file`,
    `pt`.`file_print` AS `template_file_print`
FROM
    `mstr_pages` AS `p` 
        JOIN `mstr_handlers` AS `h` ON `p`.`id_handler` = `h`.`id`
        JOIN `mstr_page_templates` AS `pt` ON `pt`.`alias`=`p`.`page_template`
WHERE
    `h`.`visible` = 1 AND
    `p`.`visible` = 1 AND
    `p`.`is_hidden` = 0 AND
    `p`.`alias` = 'main' AND
    `p`.`lang` = 0 
LIMIT 1

попробуйте так.
Гарантий никаких, поскольку неясна ни структура таблиц ни поставленная задача.

   
 
 автор: Richard Ferlow   (15.05.2008 в 23:23)   письмо автору
 
   для: Trianon   (15.05.2008 в 22:06)
 

В том и проблема- изменить этот запрос пока что не получится.
Неясно почему на текущем месте работает, а после переноса перестало.

   
 
 автор: AcidTrash   (15.05.2008 в 23:25)   письмо автору
 
   для: Richard Ferlow   (15.05.2008 в 23:23)
 

>изменить этот запрос пока что не получится
Почему не получится?

   
 
 автор: Richard Ferlow   (15.05.2008 в 23:38)   письмо автору
 
   для: AcidTrash   (15.05.2008 в 23:25)
 

Там исходники с помощью Zend закодированы.
Есть вроде бы в папке и некодированные версии, но попытка запустить оттуда не выходит - ошибку 500 вообще выдает, а сидеть разбирать, это много время уйдет, и не факт что куда нужно.

Поэтому я думаю, что самый простой путь - понять почему на этой базе данных такой запрос не работает.

   
 
 автор: Trianon   (15.05.2008 в 23:49)   письмо автору
 
   для: Richard Ferlow   (15.05.2008 в 23:38)
 

Потому, что этот запрос не удовлетворяет правилам языка SQL,
которые в очередной версии MySQL по части записи табличных соединений стали слегка строже.
Если Вам нужны конкретные пункты руководства - пожалуйста:
http://dev.mysql.com/doc/refman/5.0/en/join.html
http://dev.mysql.com/doc/refman/5.0/en/nested-joins.html
Запрос же в Вашем коде написан достаточно неряшливо - вот и результат.

   
 
 автор: Richard Ferlow   (16.05.2008 в 00:27)   письмо автору
 
   для: Trianon   (15.05.2008 в 23:49)
 

Нашел файл незакодированный, переделал запрос как Вы подсказали - заработало.
Вы гений :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования