Desidero poter selezionare un gruppo di righe da una tabella di e-mail e raggrupparle per il mittente. La mia domanda è simile al seguente:MySQL "Raggruppa per" e "Ordina per"
SELECT
`timestamp`, `fromEmail`, `subject`
FROM `incomingEmails`
GROUP BY LOWER(`fromEmail`)
ORDER BY `timestamp` DESC
La query quasi funziona come voglio - è seleziona i record raggruppati per e-mail. Il problema è che l'oggetto e il timestamp non corrispondono al record più recente per un particolare indirizzo e-mail.
Ad esempio, potrebbe tornare:
fromEmail: [email protected], subject: hello
fromEmail: [email protected], subject: welcome
Quando i record del database sono:
fromEmail: [email protected], subject: hello
fromEmail: [email protected], subject: programming question
fromEmail: [email protected], subject: welcome
Se la "questione di programmazione" soggetto è la più recente, come posso ottenere MySQL per selezionare quel record quando si raggruppano le e-mail?
Ottima idea, non avrei mai pensato di farlo in questo modo. – philwilks
Qualche anno fa mi è venuta in mente la stessa soluzione, ed è un'ottima soluzione. complimenti a bkkich. Due problemi qui però ...GROUP BY è case insensitive così più basso() non è necessaria, e la seconda, $ userID sembra essere una variabile direttamente da PHP, il codice può essere SQL injection vulnerabile se $ userID è fornito dall'utente e non costretto a essere un numero intero. – velcrow
Bella idea. La ringrazio molto –