На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Pr0[)!9Y, Akina, JoeUser
  
> MySQL, хитрый запрос
    Есть запрос вида
    ExpandedWrap disabled
      SELECT t3.id FROM t1, t2, t3 WHERE t1.aaa=1 AND t1.bbb=2 AND t1.id_group=t2.id_group AND t2.type_result=3 AND t3.id IN (t2.possible_id)

    Поле possible_id строковое, возможные варианты значений:
    1,2,4
    3,5,33,42
    8,9,10,11,12
    3,35,40,41,43
    Проблема в том, что выбирается только одна запись, хотя хотелось бы все, с айдишниками перечисленными в поле possible_id.
    Как то можно победить сие?
    Сообщение отредактировано: Gonarh -
      ExpandedWrap disabled
        AND t3.id IN (t2.possible_id)
      замени на
      ExpandedWrap disabled
        AND FIND_IN_SET(t3.id, t2.possible_id)

      Но правильнее - набить лицо архитектору и, если ещё возможно, нормализовать таблицу t2.
      Сообщение отредактировано: Akina -
      Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
      Есть претензии ко мне как к участнику? да ради бога.
      Не нравятся мои ответы? не читайте их.
      В общем, берегите себя. Нервные клетки не восстанавливаются.
        Спасибо, уже сам нашел, лицо набью себе сам, по поводу нормализации, как лучше сделать, не вижу более простого пути.
        Сообщение отредактировано: Gonarh -
          Создать таблицу possible_ids с полями t2_id (ссылка на запись таблицы t2) и possible_id (один id из списка, и, вероятно, числового типа). А это поле possible_id из t2 удалить нафиг.

          Тогда в запрос добавится ещё одна таблица, а это условие трансформируется в
          ExpandedWrap disabled
            AND t2.id = possible_ids.t2_id AND t3.id = possible_ids.possible_id
          Сообщение отредактировано: Akina -
          Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
          Есть претензии ко мне как к участнику? да ради бога.
          Не нравятся мои ответы? не читайте их.
          В общем, берегите себя. Нервные клетки не восстанавливаются.
            Бля, я тормоз, спасибо.
              Цитата Akina @
              Создать таблицу possible_ids с полями t2_id


              Цитата Akina @
              А это поле possible_id из t2 удалить нафиг.

              Для разных БД, Временные таблицы - затратны, удаление см п. 1. Если
              Gonarh уточнит задачу то решения
              Цитата Gonarh @
              Бля, я тормоз, спасибо.

              Могут быть другими , кроме "могучего" первого слова в цитате. :lol:
              Цель - ничто , процесс - все.
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script Execution time: 0,1024 ]   [ 18 queries used ]   [ Generated: 16.10.19, 09:28 GMT ]