ФорумРазработкаБазы данных → Дитя ORM и простых селектов

Дитя ORM и простых селектов

  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 1 июня 2011 г. 13:45

    Помогите.
    Есть уебская структура в socialengine 3. Его разрабы видимо считают, что many to many придумали трусы и дураки и сделали каждому типу профиля свои поля. То есть у каждого типа профиля свои поля. Дата рождения у каждого типа хранится своя. И в запросе мне нужно взять дату рождения и обозвать ей `date`.
    Вот короче:
    		SELECT 
    `p`.`profilevalue_user_id`, CASE WHEN (`p`.`profilevalue_72` <> '') THEN `p`.`profilevalue_72` as `date` WHEN (`p`.`profilevalue_4` <> '') THEN `p`.`profilevalue_4` as `date` WHEN (`p`.`profilevalue_109` <> '') THEN `p`.`profilevalue_109` as `date` WHEN (`p`.`profilevalue_107` <> '') THEN `p`.`profilevalue_107` as `date` WHEN (`p`.`profilevalue_110` <> '') THEN `p`.`profilevalue_110` as `date` END
    FROM
    `se_profilevalues` AS `p`, `se_users` AS `u`
    WHERE
    `p`.`profilevalue_user_id` = `u`.`user_id` AND
    `u`.`user_enabled` = 1 AND `u`.`user_enabled` = 1 AND
    DAY(`date`) >= '1' AND MONTH(`date`) = '6'
    ORDER BY DAY(`date`)
    LIMIT 0, 10

    Как правильно то?
    Спустя 31 сек.
    Ошибка в условии видимо.
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 1 июня 2011 г. 14:22, спустя 37 минут 17 секунд

    У самого движка видимо есть какой-то способ, надстройка над sql. Если нет (не верю) – то видимо в условии CASE должна быть проверка на тип профиля, а не на пустоту полей, как у тебя. Это говно точно неправильное.
    ιιlllιlllι унц-унц
  • Flare

    Сообщения: 284 Репутация: N Группа: Кто попало

    Spritz 1 июня 2011 г. 14:27, спустя 5 минут 5 секунд

    кинь структуру таблиц(ы), а то тяжело воспринимается
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 1 июня 2011 г. 14:42, спустя 14 минут 46 секунд

    artoodetoo, у движка нихуя нет. Они просто забили.
    Flare,
    se_profilevalues
    -id
    -profilevalue_user_id
    -profilevalue_* (вместо звездочки - id)
    se_users
    -user_id
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 1 июня 2011 г. 16:03, спустя 1 час 21 минуту 13 секунд

    Дитя ORM и простых селектов

    да. сам такой

Пожалуйста, авторизуйтесь, чтобы написать комментарий!