[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Тест PHP
Страницы: 1, 2, 3
Kusss
Цитата (chee @ 16.10.2014 - 21:59)
У нас задача на знание MySQL, на моём опыте не один кандидат не осилил. Вот она:

users
-----
id
name

comments
-----
id
message
user_id
post_date

Получить последнее сообщение для каждого пользователя.

А зачем ты так сложно сделал ?
SELECT 
u.id, u.name,
(
SELECT `text` FROM `comments` WHERE user_id = u.id ORDER BY `post_date` DESC LIMIT 0,1) AS `text`
FROM
`users` AS u
ORDER BY
u.id
GET
Kusss
Может даже (если строки, конечно никак не мешают)
Цитата
ORDER BY `post_date`
делать не нужно будет просто последняя строка юзера в `comments` априори будет с последней датой.

И вот еще не понял зачем
Цитата
ORDER BY u.id
вроде в условиях нет сортировки по юзерам, только по дате?



_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Kusss
Цитата
делать не нужно будет просто последняя строка юзера в `comments` априори будет с последней датой.

ну я же не знаю как происходит редактирование. Может там UPDATE , без сохранения "того что было"
chee
Kusss, можно сделать как у вас. В принципе, лучше даже сделать так как у вас, так как выборка будет проходить быстрее в десятки раз, за счет меньшего количества виртуальных таблиц.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
sergeiss
Цитата (ABC @ 18.10.2014 - 10:15)
Может даже (если строки, конечно никак не мешают)
Цитата
ORDER BY `post_date`
делать не нужно будет просто последняя строка юзера в `comments` априори будет с последней датой.

Порядок выбираемых строк может быть любым, если не определен ORDER BY. Поэтому, если нужно однозначное поведение, то ORDER BY просто обязателен.

В запросы не вникал, если честно; мой камент относится только к процитированному утверждению.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
GET
sergeiss
Цитата
Порядок выбираемых строк может быть любым, если не определен ORDER BY. Поэтому, если нужно однозначное поведение, то ORDER BY просто обязателен.


ну да, конечно я затупил...тогда по id тогда должен быть с DESC

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.