SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 29.11.2022 16:08:23

dimquea
Участник
Зарегистрирован: 29.11.2022
Сообщений: 2

Уникальные записи по двум полям

Приветствую.
Есть две таблицы:
CREATE TABLE IF NOT EXISTS `messages` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL DEFAULT 0,
  `text` text COLLATE utf8_unicode_ci NOT NULL,
  `shop` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
);
INSERT INTO `messages` (`id`, `user_id`, `text`, `field`) VALUES
    (100, 63, 'text1', 3),
    (101, 63, 'text2', 4),
    (102, 64, 'text3', 4),
    (103, 64, 'text3', 4);

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `login` tinytext COLLATE utf8_unicode_ci NOT NULL,
  `name` tinytext COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
);
INSERT INTO `users` (`id`, `login`, `name`) VALUES
    (63, 'user_login', 'user_name'),
    (64, 'another_user_login', 'another_user_name');

нужно получить из таблицы messages самые последние строки по id, для каждой пары user_id, field. в этот же ответ нужно добавить login и name из users по messages.user_id->users.id
ожидаем результат:
100, 63, 'text1', 3, 'user_login', 'user_name'
101, 63, 'text2', 4, 'user_login', 'user_name'
103, 64, 'text3', 4, 'another_user_login', 'another_user_name'

Заранее спасибо за помощь, надеюсь достаточно понятно объяснил.

Неактивен

 

#2 29.11.2022 16:42:39

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5828

Re: Уникальные записи по двум полям

Группировка по user_id, field (есть как минимум 5 способов, см https://sqlinfo.ru/articles/info/18.html )  и join таблицы `users`, чтобы получить login и name.

Неактивен

 

#3 29.11.2022 23:04:12

dimquea
Участник
Зарегистрирован: 29.11.2022
Сообщений: 2

Re: Уникальные записи по двум полям

vasya написал:

Группировка по user_id, field (есть как минимум 5 способов, см https://sqlinfo.ru/articles/info/18.html )  и join таблицы `users`, чтобы получить login и name.

действительно. я даже не подумал использовать группировку по двум полям. спасибо, то что нужно.

Неактивен

 

#4 30.11.2022 13:41:46

egos
Участник
Зарегистрирован: 01.08.2022
Сообщений: 12

Re: Уникальные записи по двум полям

Про оконные функции тоже не забываем, если используете новую версию (8).

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson