Форум сетевых администраторов
Показаны 3 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- MySQL (http://netadmin.ws/forum/forumdisplay.php?forumid=40)
-- Разница в запросах MySql под Win & *nix (http://netadmin.ws/forum/showthread.php?threadid=10349)


Помещено he][es 25-02-2005 в 07:58:

Exclamation Разница в запросах MySql под Win & *nix

Есть такой запрос:

code:

(SELECT `razdeli`.`id`, `razdeli`.`razdel_name`, COUNT(`soiskateli`.`soiskatel_id`) AS `kol_vo` FROM `razdeli` INNER JOIN `dolgnosti` ON (`razdeli`.`id` = `dolgnosti`.`razdel_id`) INNER JOIN `soiskateli` ON (`dolgnosti`.`dolgnost_id` = `soiskateli`.`dolgnost_id`) WHERE (`soiskateli`.`verified` = '1') AND (`soiskateli`.`shelf_time` >= CURDATE() OR `soiskateli`.`shelf_time` = '2001-01-01') GROUP BY `razdeli`.`id`, `razdeli`.`razdel_name`) UNION (SELECT `razdeli`.`id`, `razdeli`.`razdel_name`, COUNT(`soiskateli`.`soiskatel_id`) AS `kol_vo` FROM `razdeli` INNER JOIN `dolgnosti` ON (`razdeli`.`id` = `dolgnosti`.`razdel_id`) INNER JOIN `pret_dolg_sois` ON (`dolgnosti`.`dolgnost_id` = `pret_dolg_sois`.`dolgnost_id`) INNER JOIN `soiskateli` ON (`pret_dolg_sois`.`soiskatel_id` = `soiskateli`.`soiskatel_id`) WHERE (`soiskateli`.`verified`='1') AND ((`soiskateli`.`shelf_time` >= CURDATE()) OR (`soiskateli`.`shelf_time`='2000-01-01')) GROUP BY `razdeli`.`id`, `razdeli`.`razdel_name`) ORDER BY `razdeli`.`razdel_name`


Который без проблем работает под виндой на локалхосте под мастдаем... (не вспомню точно версию МусКула... свеженькая какая то) А вот на серваке или под линью, он совершенно отказывается работать..
Говорит
quote:

Unknown column 'razdeli.razdel_name' in 'ORDER BY'


Нет ну не бред ли, а?! Тут (SELECT `razdeli`.`id`, `razdeli`.`razdel_name`) он значит очень даже новн, а по ордеру унновн В чём фишка?..

Вот так вот начнёшь писать, и решение находишь!
Как говорится "хозяйке на заметку" пишем:

code:
 
(SELECT `razdeli`.`id`, `razdeli`.`razdel_name` AS `r_name`, COUNT(`soiskateli`.`soiskatel_id`) AS `kol_vo` FROM `razdeli` INNER JOIN `dolgnosti` ON (`razdeli`.`id` = `dolgnosti`.`razdel_id`) INNER JOIN `soiskateli` ON (`dolgnosti`.`dolgnost_id` = `soiskateli`.`dolgnost_id`) WHERE (`soiskateli`.`verified` = '1') AND (`soiskateli`.`shelf_time` >= CURDATE() OR `soiskateli`.`shelf_time` = '2001-01-01') GROUP BY `razdeli`.`id`, `razdeli`.`razdel_name`) UNION (SELECT `razdeli`.`id`, `razdeli`.`razdel_name` AS `r_name`, COUNT(`soiskateli`.`soiskatel_id`) AS `kol_vo` FROM `razdeli` INNER JOIN `dolgnosti` ON (`razdeli`.`id` = `dolgnosti`.`razdel_id`) INNER JOIN `pret_dolg_sois` ON (`dolgnosti`.`dolgnost_id` = `pret_dolg_sois`.`dolgnost_id`) INNER JOIN `soiskateli` ON (`pret_dolg_sois`.`soiskatel_id` = `soiskateli`.`soiskatel_id`) WHERE (`soiskateli`.`verified`='1') AND ((`soiskateli`.`shelf_time` >= CURDATE()) OR (`soiskateli`.`shelf_time`='2000-01-01')) GROUP BY `razdeli`.`id`, `razdeli`.`razdel_name`) ORDER BY `r_name`


И всё блин чудесным образом работает!!! (Хоть в саппорт мускула пиши!)

__________________
Админ - вождь Апачей...


Помещено Xrobak 25-02-2005 в 14:52:

а зачем писать (SELECT `razdeli`.`id`, `razdeli`.`razdel_name`), если можно просто (SELECT razdeli.id, razdeli.razdel_name) а? Может в этом причина...


Помещено he][es 25-02-2005 в 16:09:

нет конечно, у меня половина запросов так написана и ничего работате... Тыт именно "локальный" глюк!

__________________
Админ - вождь Апачей...


Формат времени GMT. Текущее время 06:56.
Показаны 3 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.