sql >> Database >  >> RDS >> Mysql

Vraag ouders en kinderen in zelfverwijzende tabel

Het is niet getest, maar ik denk dat dit ook in MySQL zou moeten werken:

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

Bewerken: Als u er niet vanuit kunt gaan dat de ID's oplopend zijn in dezelfde logische volgorde als de opmerkingen, wordt het iets ingewikkelder:

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. Hoe beschouwt u NULL als de MAX-datum in plaats van deze in MySQL te negeren?

  2. Entity Framework-query's optimaliseren

  3. Hoe kan ik het verschil tussen hoofdletters en kleine letters negeren bij het zoeken met mysql

  4. Een inconsistente PostgreSQL-slave opnieuw opbouwen