Salve a tutti, ho una tabella conversazioni dove sono contenute tutte le conversazioni scambiate tra più utenti. Supponiamo una tabella cosi composta:
|id|mittente|destinatario|messaggio|data|
|5| paolo| luca | ciao|----|
|4| marco| luca | aa| ----|
|3| luca | paolo| bbb| ---|
|2| alberto| gianni|ccc|---|
L'utente che esegue la richiesta è "paolo" quindi dalla query vorrei ottenere solo questa riga:
|5| paolo| luca | ciao|----|
che sarebbe la mia "testata" della conversazione"
Se la richiesta fosse fatta da "luca" le righe sarebbero:
|5| paolo| luca | ciao|----|
|4| marco| luca | aa| ----|
cioè gli utimi messaggi inviati da "luca" agli altri utenti.
Ora ho una query di questo tipo:
Codice:
SELECT * FROM chat_utenti WHERE id IN (SELECT MAX(id) FROM chat_utenti WHERE (mittente = '$utenteLog' OR destinatario = '$utenteLog') GROUP BY mittente) ORDER BY id DESC
che però mi ritorna 2 messaggi per ogni utente, cioè l'ultimo inviato e l'ultimo ricevuto (se presenti) di ogni conversazione.