За последние 24 часа нас посетили 62166 программистов и 1680 роботов. Сейчас ищет 1271 программист ...

вывести картинки к товару

Тема в разделе "MySQL", создана пользователем TigerZaka, 11 авг 2013.

  1. TigerZaka

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

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    Доброго времени суток!
    Есть три таблицы:

    objects - объекты с их ID
    object_photo - ID объектов, ID фотографий (мн-к-мн)
    photos_objects - ID фотографий и сами фотографии

    Хочу вывести объект и к нему все возможные фотографии
    Код (Text):
    1.  
    2. SELECT ob.id_obj, po.full_photo FROM objects AS ob
    3. LEFT JOIN object_photo AS op ON ob.id_obj = op.id_object
    4. LEFT JOIN photos_objects AS po ON po.id_photo = op.id_photo
    5. WHERE ob.id_obj =  '1'
    6. GROUP BY ob.id_obj
    Но в итоге получаю только одно фото к объекту, а если убираю group by - дубли объектов с фотками.

    Как можно решить?
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Сколько фото может иметь один объект? Хочу понять целесообразность мн-к-мн. Может лучше использовать 1-к-мн и все проблемы отпадут сами собой?
     
  3. TigerZaka

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

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    где-то до десяти. Да, тут пожалуй 1-к-мн.

    Но допустим, есть планировки и квартиры, вот тут может все дублировать и тогда мн-к-мн нужно. Так как же в такой ситуации лучше вывод данных сделать?
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Не может. Планировка редко бывает прям вот "заводская". Тту котел поставили отопительный, там батареи перевесили, тут положение ванны поменяли, там балкон застеклили. Просто подумайте, что проще - гемороиться с мн-к-мн, при условии что оно понадобится в 1% случаев, или сделать 1-к-мн, при рассчете что в 1% случаев будет рождаться дубликат? Два зла. Выбирайте меньшее для вас. Учитывая также, что таблицы-коннекторы в мн-к-мн чуть что начинают распухать просто как на дрожжах. object_photo в вашем случае.

    Просто если используется мн-к-мн, зачастую это значит, что что-то не так в структуре базы. Ибо почти всегда это можно нормально разрулить на 1-к-мн и щелкать по ключам, без мусора и супер-джоинов. Взгляните на фейсбук - казалось бы сложная дура. А там запросы к базе элементарнейшие - простенькие селекты и инсерты/апдейты. Без джоинов вообще.
     
  5. TigerZaka

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

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    В том то и дело, что
    , планировка - это просто расположение комнат и метраж.
    Получается, что у 20 домов, могут совпадать планировки. И,без мн-к-мн я выхода не вижу. Поэтому вопрос - реально ли вывести данные, в моем варианте, без вложенных запросов?

    Добавлено спустя 27 минут 47 секунд:
    Нашел ответ на хабре (habrahabr.ru/qa/11916/)
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Ну, по крайней мере без джоинов :)