Mysql
 sql >> база данни >  >> RDS >> Mysql

MySql :Подреждане по и групиране Чрез комбиниране не дава последния запис

Как можете да GROUP BY id_thread когато няма id_thread колона във вашата таблица?

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

Въз основа на вашите коментари това, което искате, е най-новото (подредено по created ) ред за всяка id_thread , което е различна и по-сложна заявка. Има дори маркер за този вид заявки, наречен [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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. разделяне на ключови думи за post php mysql

  2. PHP MYSQL импортирайте CSV и след това сравнете и премахнете излишните записи

  3. MySQL GROUP BY дата при използване на datetime

  4. Грешка в израза на пътя на MySQL JSON_EXTRACT

  5. Извличане на изображение, съхранено като BLOB в MYSQL DB