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

Запитване на родителите и децата в таблицата за саморефериране

Не е тестван, но мисля, че това трябва да работи и в MySQL:

ORDER BY CASE WHEN parent_id=-1 THEN id ELSE parent_id END, created_at

Редактиране: Ако не можете да приемете, че идентификаторите се нарастват в същия логически ред като коментарите, става малко по-сложно:

SELECT parent_id,id,created_at parent_date,null child_date,content
    FROM Comments
    WHERE parent_id=-1
UNION
SELECT c.parent_id,c.id,p.created_at as parent_date,c.created_at as child_date,c.content
FROM Comments c
    JOIN (SELECT id,created_at,content
            FROM Comments
            WHERE parent_id=-1
            GROUP BY id,created_at,content) p ON p.id=c.parent_id
ORDER BY parent_date,child_date



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. django+mysql='DatabaseWrapper' обектът няма грешка в атрибута 'Database'

  2. MySQL GROUP BY/ORDER BY проблем

  3. Избягвайте сортирането на файлове с INNER JOIN + ORDER BY

  4. MySQL WHERE LIKE не работи с множество полета, използвайки php и pdo bind

  5. Как да попълним gridview с mysql?