sql >> Databasteknik >  >> RDS >> Mysql

MySql :Ordna efter och grupp Genom att kombinera inte ge den senaste posten

Hur kan du GROUP BY id_thread när det inte finns någon id_thread kolumn i din tabell?

SELECT * 
FROM contacts 
WHERE id_receiver = 1 
                                 --- GROUP BY id_thread
                                 --- removed 
ORDER BY created DESC
LIMIT 1                          --- only show one row

Baserat på dina kommentarer är det du vill ha det senaste (beställt efter created ) rad för varje id_thread , vilket är en annan och mer komplex fråga. Det finns till och med en tagg för den här typen av frågor, som heter [greatest-n-per-group] .

SELECT c.* 
FROM contacts AS c
  JOIN
    ( SELECT id_thread, MAX(created) AS created 
      FROM contacts 
      WHERE id_receiver = 1  
      GROUP BY id_thread
    ) AS g 
    ON (g.id_thread, g.created) = (c.id_thread, c.created) 
WHERE c.id_receiver = 1  


  1. Hur man listar tabeller i MySQL och MariaDB

  2. Hur man hittar namnet på en begränsning i MySQL

  3. Online kontra offline säkerhetskopiering

  4. Återställer raderad "root"-användare och lösenord för MySQL