Подписаться
для оповещений:
RU
Вход / Регистрация
  • Аватар пользователя Fantik
    • Заслуженный участник
    18 лет13 июня 2008 в 23:06

    траблы с переводом совта

    просто цитата от мну.

    рабочий запрос

    SELECT rab_info.id AS id, DATE_FORMAT(rab_info.add_date,'%d.%m.%y') AS add_date, rab_info.experience AS exp, rab_info.rubr_other AS rubr_other, rab_info.rubr_2 AS rubr_2, zrubr.name AS rubr, zrubr.parent AS parent, IF (LENGTH(rab_info.pay)>17,CONCAT(LEFT(rab_info.pay,17),'...'),rab_info.pay) AS pay, zexchange.name AS exch FROM zrubr, rab_info LEFT JOIN zexchange ON rab_info.exchange=zexchange.id INNER JOIN rab on rab.id = rab_info.rab_id INNER JOIN users ON users.id = rab.login WHERE rab_info.rubr = zrubr.id && rab_info.hidden = 'n' && users.is_agency = 'n' ORDER BY rab_info.add_date DESC

    вот не...(жопа)...рабочий:


    SELECT rab_info.id AS id, DATE_FORMAT(rab_info.add_date,'%d.%m.%y') AS add_date, rab_info.experience AS exp, rab_info.rubr_other AS rubr_other, rab_info.rubr_2 AS rubr_2, zrubr.name AS rubr, zrubr.parent AS parent, IF (LENGTH(rab_info.pay)>17,CONCAT(LEFT(rab_info.pay,17),'...'),rab_info.pay) AS pay, zexchange.name AS exch FROM rab_info,zrubr LEFT JOIN zexchange ON rab_info.exchange=zexchange.id INNER JOIN rab on rab.id = rab_info.rab_id INNER JOIN users ON users.id = rab.login WHERE rab_info.rubr = zrubr.id && rab_info.hidden = 'n' && users.is_agency = 'n' ORDER BY rab_info.add_date DESC


    просто елки. объясните в чем траблы. в мануалах ненашел. чистое решение методом тыка
    это про MySQL нерабочий работает в 4-ом
    рабочий - и в 4-ом, и в 5-ом
    Лайкнуть этот пост, увеличить его рейтинг
    Количество комментариев под постом, кликните сюда чтобы перейти к посту
    Количество просмотров у поста, кликните сюда чтобы перейти к посту
  • Комментарии
  • Аватар пользователя Li0liQ
    • ---
    18 лет13 июня 2008 в 23:46
    Похоже, порядок всё-таки, важен).
    А почему бы не использовать JOIN (любой на выбор:D), вместо
    Цитата пользователя
    SELECT ... FROM zrubr, rab_info ... WHERE rab_info.rubr = zrubr.id
    ? Быть может, из-за каких-нибудь NULL-ов в не тех местах (rab_info.rubr, zrubr.id) и проблема, которую в MySQL 5 поправили:)
    Лайкнуть этот пост, увеличить его рейтинг
  • Аватар пользователя Fantik
    • Заслуженный участник
    18 лет14 июня 2008 в 05:51
    • автор
    скорее всего так и есть, но ткните кто нить меня в строчку мануала!

    зы. причем если бы осмысленно 5-й ругался. а то говорит что во время объединения не нашел в такой то таблице такого столбца :(
    Лайкнуть этот пост, увеличить его рейтинг
  • Аватар пользователя Koba
    • Покоритель форума
    18 лет16 июня 2008 в 16:11
    чем они отличаются
    Лайкнуть этот пост, увеличить его рейтинг
  • Аватар пользователя Fantik
    • Заслуженный участник
    18 лет18 июня 2008 в 06:09
    • автор
    @Koba
    Отличаются порядком следования таблиц в фроме:
    FROM zrubr, rab_info - так работает, FROM rab_info, zrubr - а так ругается на отсутствие столбцов в rab_info при джойнах (в 5-м mysql-е, 4-му пофиг)

    это просто старинный сайт попросили поправить. судя по коду - делали его 2 разных прогера, бо кусками стиль кода сильно отличается.
    запрос этот строится автоматом из кучи параметров. + таблица zrubr скорее всего была добавлена спустя кучу лет от начала функционирования сайта.... вот от туда ноги и растут... просто пришлось с этим повозится, а в доках так и не нашел отличия между 4-м и 5-м по этому вопросу :(
    Лайкнуть этот пост, увеличить его рейтинг
  • Аватар пользователя Koba
    • Покоритель форума
    18 лет19 июня 2008 в 17:03
    а так не пробовал
    select a.example1, a.example2, b.example1 from FROM zrubr a, rab_info b
    Лайкнуть этот пост, увеличить его рейтинг
  • Аватар пользователя Fantik
    • Заслуженный участник
    18 лет19 июня 2008 в 20:15
    • автор
    дык давно работает все. яж пост создавал с вопросом чтобы показали где написано про это в доках по изменениям между 4-й и 5-й версиями mysql. бо пока методом тыка нашел - времене потратил... а так если вообще запрос переписывать, то я бы совсем по другому составлял. однако не будеш же менять кучу скриптов ради правки одного запроса.
    Лайкнуть этот пост, увеличить его рейтинг
Talkvio Engine 0.2.0-1538-gd9bcfa6
X
0.2.0-1538-gd9bcfa6