[MySQL] выбор неповторяющихся значений по одному полю
from table
group by field1
далее подцепляешь остальное
SELECT posts . post_id , topics . topic_title , posts . forum_id , forums . forum_name
FROM `posts`
LEFT JOIN `topics` USING (topic_id)
LEFT JOIN `forums` USING (forum_id)
ORDER BY `posts` . `post_id` ASC
И мне надо, чтобы в роли field1 здесь был topics.topics_title, а в роли id - posts.post_id
Как лучше делать?
SELECT
max(posts.post_id
topics.topic_title,
posts.forum_id,
forums.forum_name
FROM `posts`
LEFT JOIN
`topics`
USING
(topic_id)
LEFT JOIN
`forums`
USING
(forum_id)
ORDER BY `posts`.`post_id`
GROUP BY topics.topic_title
ASC
Так, что ле?
SELECT MAX( posts.post_id ) , topics.topic_title, posts.forum_id, forums.forum_name
FROM `posts`
LEFT JOIN `topics`
USING ( topic_id )
LEFT JOIN `forums`
USING ( forum_id )
GROUP BY topics.topic_title
ORDER BY posts.post_id ASC
не сортирует.
спасибо всем большое.
SELECT MAX( posts.post_id ) AS `id` , topics.topic_title, posts.forum_id, forums.forum_name
FROM `posts`
LEFT JOIN `topics`
USING ( topic_id )
LEFT JOIN `forums`
USING ( forum_id )
GROUP BY topics.topic_title
ORDER BY `id` ASC
тогда так можно:
CREATE TEMPORARY TABLE tmp1
SELECT max(id) AS tmp_id FROM table1
GROUP BY field1;
SELECT id, field1, field2 FROM table1, tmp1
WHERE tmp_id=id;
DROP TABLE tmp1;
если нужна транзакция, то можно чуть переделать
Оставить комментарий
vlfdimir58
Задача: Есть табличка:если в field1 есть повторяющиеся значения, то нужно вывести только те строки, в которых id наибольший
То есть для указанного примера надо вывести:
Реально ли такое только средствами MySQL. И если да, то как?