@atachrus

Как правильно составить запрос mySql?

Можете подсказать, как правильно составить запрос.
Задача из таблицы выбрать уникальные сочетание значений по двум полям. Записи должны быть последними.
К примеру структура такая таблицы. Мне необходима вытащить по уникальной записи для сочетания полей pole1 и pole2.
id | pole1 | pole2 | txt
* distinct я так понимаю работает только для одного поля.
Я пробую делать вот такую выборку и вроде срабатывает, но тогда не работает сортировка, что бы выбиралось уникальные значения из последних записей.

select * from table where 'какие то мои условия' GROUP BY pole1, pole2 order by id desc
  • Вопрос задан
  • 138 просмотров
Решения вопроса 2
@heartdevil
плыву как воздушный шарик
Привет.

Вот так попробуйте

SELECT out.pole1 AS pole1, out.pole2 AS pole2 FROM 
(SELECT * FROM table ORDER BY id DESC) AS out
WHERE condition
GROUP BY out.pole1, out.pole2
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Что значит "записи должны быть последними"? Иметь максимальный id? Тогда
SELECT `t`.* FROM (
    SELECT MAX(`id`) AS `id`
        FROM `table`
        GROUP BY `pole1`, `pole2`
    ) AS `i`
    JOIN `table` AS `t` ON `t`.`id` = `i`.`id`

А DISTINCT выбирает уникальные строки результата, а не одно поле.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Ответ написан
Комментировать
@prishelec
Если вы хотите и сортировку то, тогда запрос с GROUP BY вынесете в отдельный
SELECT * FROM (ваш запрос) AS tbl ORDE BY tbl.id (это к примеру)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы