Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 13.05.2016
Сообщений: 57
MySQL

Выборка последних комментариев из 2х таблиц БД

11.01.2018, 10:56. Показов 1730. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем привет. нужно выбрать по 1 последнему комментарию (столбец text) каждого юзера и вывести имя этого юзера и его комментарий

Название: Screenshot_6.png
Просмотров: 43

Размер: 7.4 Кб



P.S. для одной таблицы comments работает вот так
MySQL
1
2
3
4
5
6
7
SELECT * 
FROM comments
WHERE comments.id IN ( 
    SELECT MAX(comments.id) 
    FROM comments
    GROUP BY comments.user_id 
) ORDER BY comments.id DESC
но не получается сджоинить с таблицой users, чтобы имена вывести
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.01.2018, 10:56
Ответы с готовыми решениями:

Составить запрос - Выбрать 5 последних комментариев
Есть таблица CREATE TABLE IF NOT EXISTS `wp_alexom_comments` ( `id` int(11) NOT NULL, `model_name` varchar(255) DEFAULT NULL, ...

Не получается корректно получить список последних комментариев из бд
Здравствуйте, друзья! Никак не получается корректно получить список последних комментариев из бд. Всё отлично работает, кроме элемента...

Как вывести 5 последних комментариев в блоге, комментарии на гл.странице
Помогите, пожалуйста! Я глупый новичок, нам задали задание и я не понимаю, как это сделать... Я создала блог с помощью Ruby on Rails,...

7
0 / 0 / 0
Регистрация: 13.05.2016
Сообщений: 57
11.01.2018, 11:15  [ТС]
получился вот такой запрос

SQL
1
2
3
4
5
6
7
SELECT users.name, comments.text FROM users INNER JOIN comments
ON users.id = comments.user_id
WHERE comments.id IN ( 
    SELECT MAX(id)
    FROM comments
    GROUP BY comments.user_id 
) ORDER BY comments.user_id DESC
может можно как-то упростить его? или укоротить?
P.S. и еще такой вопрос - как можно оптимизировать структуру БД?
на данный момент столбец user_id не является внешним ключом
0
0 / 0 / 0
Регистрация: 11.01.2018
Сообщений: 7
11.01.2018, 14:31
нужно добавить столбцы created, updated в таблицу комментариев и от этого уже плясать.
0
62 / 63 / 28
Регистрация: 10.01.2018
Сообщений: 360
12.01.2018, 01:59
apxibu119, Вы на глаз определяете, что комментарий пользователя последний? Было бы неплохо временную метку добавлять во время создания коммента.
0
0 / 0 / 0
Регистрация: 13.05.2016
Сообщений: 57
12.01.2018, 08:49  [ТС]
ddoluk и Sternman вы усложняете задачу.
про даты лишнее, считаем что последний комментарий тот, у которого наибольший ID. и соответственно, старый комментарий тот, у которого ID наименьший.
0
10 / 46 / 7
Регистрация: 28.11.2017
Сообщений: 97
12.01.2018, 13:39
apxibu119, проще добавить в таблицу комментариев поле name для имен пользователей и во время комментирования заполнять его. Это оптимизирует выборку последних комментариев и не придется заниматься геморроем
0
0 / 0 / 0
Регистрация: 11.01.2018
Сообщений: 7
12.01.2018, 15:35
MySQL
1
2
3
4
5
6
7
8
9
SELECT
  users.name,
  comment.text
FROM comment
  LEFT JOIN users ON comment.user_id = users.id
WHERE comment.id IN (
  SELECT max(id)
  FROM comment GROUP BY user_id)
ORDER BY user_id DESC
Если нужно отсортировать по ASC то убираем
MySQL
1
ORDER BY user_id DESC
0
62 / 63 / 28
Регистрация: 10.01.2018
Сообщений: 360
13.01.2018, 09:56
Цитата Сообщение от apxibu119 Посмотреть сообщение
про даты лишнее, считаем что последний комментарий тот, у которого наибольший ID.
Это если вы никогда не будете добавлять функционал редактирования комментария.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.01.2018, 09:56
Помогаю со студенческими работами здесь

Выборка последних записей
Здравствуйте хочу выбрать последние записи из чата: SELECT * FROM `chat` ORDER BY `id` DESC LIMIT 20, 0 Но проблема в том что они...

Выборка последних записей
Есть таблица stantion_name вида: id | Название 1| Первая 2| Вторая (В ней перечислены некие установки) Берем отсюда все id:...

Получение комментариев полей и таблиц Postgresql
Здравствуйте, помогите доделать запрос. Данный запрос выводит имя таблицы, комментарий к таблице, имя поля и комментарий к полю по...

Выборка из формы (10 последних позиций)
Добрый день. Я опять к вам с вопросами. Есть таблица, в которую менеджеры заносят свои переговоры, так вот задача такая - как сделать,...

Выборка списка последних записей
имеется таблица с полями id (ключ), guid, name, time ... и т.д. guid - поле с неким уникальным значением (используется для связки с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru