За последние 24 часа нас посетили 21519 программистов и 1690 роботов. Сейчас ищут 1796 программистов ...

Помогите, разобраться в какую сторону рыть?

Тема в разделе "MySQL", создана пользователем KOM, 24 янв 2008.

  1. KOM

    KOM Активный пользователь

    С нами с:
    21 июл 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кривой Рог, Днепропетровская
    Помогите, разобраться в какую сторону рыть?

    запрос на локоли выполняется без проблем
    на системе денвер

    выдает: не существует колонка v_enumtest.fvalue
    ERROR 1054: Unknown column 'v_enumtest.fvalue' in 'on clause'


    а на хостинге не выполняется

    вот сам запрос


    SELECT regions.name as regions, variantid, streets.name as streets, zone.name as zone,
    moneyid.name as moneyid, santech.name as santech,
    listid, fvalue, ftype, listparam_base.namebase_l, listparam_base.name as `name_param`
    FROM v_enumtest,listparam_base
    LEFT JOIN regions ON (v_enumtest.fvalue=regions.id and listid=2 )
    LEFT JOIN streets ON v_enumtest.fvalue=streets.id and listid=3
    LEFT JOIN zone ON (v_enumtest.fvalue=zone.id and listid=4 )
    LEFT JOIN moneyid ON (v_enumtest.fvalue=moneyid.id and listid=33 )
    LEFT JOIN santech ON (v_enumtest.fvalue=santech.id and listid=76 )
    where v_enumtest.listid=listparam_base.id
    and variantid in (518, 916, 1690, 2288, 2561, 2650, 2664, 2895, 2903, 2959, 3233, 3364, 3417, 3428, 3430)
    and listid in (2,0,3,4,33,76,104,106,111,136,155)
     
  2. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    и что это означает? ))
     
  3. KOM

    KOM Активный пользователь

    С нами с:
    21 июл 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кривой Рог, Днепропетровская
    При выполнеи этого запроса на локали (под денвером и виндовс) - работает

    а на VPS и линукс не работает

    я вывел ошибку ответа MySQL

    ERROR 1054: Unknown column 'v_enumtest.fvalue' in 'on clause'


    не могу понять в чем может быть загвоздка?
     
  4. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    такого столбца нет. Базу криво перенес или еще что.
     
  5. KOM

    KOM Активный пользователь

    С нами с:
    21 июл 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кривой Рог, Днепропетровская
    столбец точно есть

    SHOW CREATE TABLE v_enumtest

    CREATE TABLE `v_enumtest` (
    `variantid` int(6) NOT NULL default '0',
    `listid` int(4) NOT NULL default '0',
    `fvalue` double(12,3) NOT NULL default '0.000'
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251
    и

    запрос
    SELECT * FROM v_enumtest
    выдает таблицу с тремя полями и поле fvalue присутствует
     
  6. KOM

    KOM Активный пользователь

    С нами с:
    21 июл 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кривой Рог, Днепропетровская
    и на локали запрос работает отлично
     
  7. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    (зевает)
    ну проверяй по одному джойну, может где опечатался.
    версия mysql?
     
  8. KOM

    KOM Активный пользователь

    С нами с:
    21 июл 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кривой Рог, Днепропетровская
    на локали 4.1.8-max
    на сервере 5.0.27
     
  9. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
  10. KOM

    KOM Активный пользователь

    С нами с:
    21 июл 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кривой Рог, Днепропетровская


    благодарю

    РЕЗЮМЕ по топику

    проблема была в различии синтаксиса 4 и 5 MySQL

    в запросе необходимо заменить FROM v_enumtest,listparam_base
    на FROM (v_enumtest,listparam_base)



    тема закрыта.
     
  11. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Код (Text):
    1. and listid=n
    где n это 2, 3, 4, 33 и 76.
    Но в where
    Код (Text):
    1. listid in (2,0,3,4,33,76,104,106,111,136,155)
    По-моему, это глупый дубль и лишняя нагрузка в on. Не?
     
  12. KOM

    KOM Активный пользователь

    С нами с:
    21 июл 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кривой Рог, Днепропетровская
    lexa


    запрос выполняется 0,51 сек
    не взависимости от дополнительных JOIN

    а в on стоит проверка чтобы связь произошла с нужным параметром а не совсеми с кем совпадет fvalue

    может быть немного и лишнего но без этого не как
    такая схема отображения дополнительных параметров по объекту
     
  13. KOM

    KOM Активный пользователь

    С нами с:
    21 июл 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кривой Рог, Днепропетровская
    причем весь запрос генериться скриптом в зависмоти от данных которые необходимо отбражать

    которые выберает пользователь