За последние 24 часа нас посетили 16108 программистов и 1666 роботов. Сейчас ищут 875 программистов ...

Создание запроса в БД

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

  1. masterlelik

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

    С нами с:
    8 ноя 2008
    Сообщения:
    68
    Симпатии:
    0
    Подскажите, пожалуйста, как правильно написать запрос в БД. Желательно одним запросом.

    Структура БД следующая:
    news_id | image_id | image
    ___1________1_______11.jpg
    ___1________2_______22.jpg
    ___2________3_______33.jpg
    ___2________4_______444.jpg

    Задача: надо выбрать для каждой новости только одну картину (image) с наименьшим image_id у каждой новости.
    Т.е. должно быть выбрано:

    news_id | image_id | image
    ___1________1_______11.jpg
    ___2________3_______33.jpg
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    картинка похожа на гитарные табулатуры ))) в другой раз данные тоже разделяй | и всё будет хорошо

    Код (Text):
    1. SELECT news_id, MIN(image_id)
    2. FROM mytable
    3. GROUP BY news_id
     
  3. masterlelik

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

    С нами с:
    8 ноя 2008
    Сообщения:
    68
    Симпатии:
    0
    Выбирает хитро: image=22.jpg и MIN(image_id)=1
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    эй, я не писал в запросе колонку image! вся "хитрость" твоя собственная.

    Добавлено спустя 4 минуты 14 секунд:
    image можно добыть так:
    Код (Text):
    1. SELECT x.*, y.image
    2. FROM
    3.   (
    4.    SELECT news_id, MIN(image_id) AS image_id
    5.    FROM mytable
    6.    GROUP BY news_id
    7.   ) AS x INNER JOIN
    8.   mytable AS y ON x.image_id=y.image_id
     
  5. masterlelik

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

    С нами с:
    8 ноя 2008
    Сообщения:
    68
    Симпатии:
    0
    Спасибо, работает как надо:)

    P.S.
    , я подумал, что первый запрос сможет выбрать и нужную картинку, т.к. в своем изначальном вопросе, пример получаемых данных вмещал и полученную картинку.
    P.P.S. Единственное, что смущает - это вложенность запроса, думал, что можно решить без вложенности:)