Я получил 2 таблицы с именами «Пользователи» и «сообщение»:
"Users":
id | username
----------
38 | test
39 | test1
40 | test2
"message"messageid | source | target |subject | date
------------------------------------------------
100 | 38 | 39 | Hello | September
100 | 39 | 38 | RE: Hello | November
300 | 38 | 40 | Your car | October
Я хотел бы показать в html-таблице самое последнее сообщение от каждой группы «messageid» вместе с именем пользователя. Но имя пользователя никогда не должно быть мной (то есть никогда не пользователем, вошедшим в систему).
Например: Пользователь 39 (= test1) вошел в систему и написал последнее последнее сообщение в группе «message-id» 100 в ноябре с темой «RE: Hello». В моей таблице я хотел бы показать только последний предмет «RE: Hello» в следующем столбце этой таблицы «test» (= id 38).
Это мой запрос к MySQL:
$result=("SELECT message.id message.source, message.target, message.subject,
message.date, Users.username, max(message.date) FROM message JOIN Users
ON message.source = Users.id
WHERE (message.target = ? OR message.source = ?) GROUP BY
message.messageid ORDER BY message.date DESC", $_SESSION['id'], $_SESSION['id']);
Этот запрос дает мне самое последнее сообщение из каждой группы сообщений.
Но то, что я в основном хочу и действительно застрял с не только Users.username для message.source = Users.id, но и Users.username для message.target = Users.id. Потому что тогда я мог бы войти в php через цикл foreach, где у меня был бы оператор if / else:
if (message.source == $_SESSION['id']){echo Users.username of
message.target)};
else {echo Users.username of message.source};
Я только начинающий в программировании, и я надеюсь, что это объяснение не слишком запутанно. Я определенно буду признателен за любую помощь / идеи.
Большое спасибо!
Задача ещё не решена.
Других решений пока нет …