LINUX.ORG.RU

MYSQL GroupBy по нескольким полям


0

1

Итак есть табличка с перепиской пользователей

|id|from_id|to_id|date|message|
|0 | 1 | 2 |0001| hello |
|1 | 2 | 1 |0002|world |
|2 | 1 | 3 |0003|love |
ну тут я думаю всё понятно

задача вывести последнее сообщение для переписки...тоесть переписку между пользователями с id = 1 и id = 2 ?

★★★

Вероятно, я не понял вопроса, но зачем тут group by?

Надо вывести только последнее сообщение между 1 и 2?

SELECT TOP 1 * FROM tbl

WHERE id in (1,2) and to_id in (1,2)

ORDER BY date DESC

Deleted
()
Ответ на: комментарий от Apple-ch

оу, Ваша правда. Не увидел мускул в заголовке :) Благо уже поправили.

Deleted
()

ответьте мне на вопрос, почему тут народ массово использует вот такой-вот формат таблиц для иллюстрации:
|id|from_id|to_id|date|message|
|0 | 1 | 2 |0001| hello |
|1 | 2 | 1 |0002|world |
|2 | 1 | 3 |0003|love |

почему игнорируют классический подход? такой то есть:
id int,
from_id int,
to_id int,
date чё-то-там,
message varchar(20)

dmitryalexeeff
()
Ответ на: комментарий от dmitryalexeeff

почему игнорируют классический подход? такой то есть:

Потому-что данные и схема это несколько разные вещи.

baverman ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.