Ik probeer een simpele versie van het commentarensysteem van tweakers.net te schrijven, maar geraak er niet uit wat mijn sql statement betreft, hopelijk kunnen jullie me helpen.
De structuur van mijn commentaren-tabel is:
- id (auto indexering)
- parent_id
- boodschap
Wanneer er commentaar op een commentaar geplaatst wordt, dan is de parent_id = de id van het item waar commentaar op wordt gegeven.
Als het een nieuw commentaar is op het nieuwsbericht, zonder 'ouder' dan is de parent_id= de id van het nieuwe bericht
Als test data heb ik volgende records:
- id:1 parent_id: 1 boodschap: '1.commentaar'
- id:2 parent_id: 2 boodschap: '2. commentaar'
- id:3 parent_id: 1 boodschap: '3. commentaar op bericht 1'
- id:4 parent_id: 1 boodschap: '4. commentaar op bericht 1'
- id:5 parent_id: 3 boodschap: '5. commentaar op bericht 3'
De volgorde waarin de commentaren moeten getoond worden is dus:
Na wat googlen besef ik dat het met een self-join zal zijn, waarschijnlijk een outer join, maar ik kom er niet uit hoe ik deze query kan opstellen. Hopelijk jullie wel !
De structuur van mijn commentaren-tabel is:
- id (auto indexering)
- parent_id
- boodschap
Wanneer er commentaar op een commentaar geplaatst wordt, dan is de parent_id = de id van het item waar commentaar op wordt gegeven.
Als het een nieuw commentaar is op het nieuwsbericht, zonder 'ouder' dan is de parent_id= de id van het nieuwe bericht
Als test data heb ik volgende records:
- id:1 parent_id: 1 boodschap: '1.commentaar'
- id:2 parent_id: 2 boodschap: '2. commentaar'
- id:3 parent_id: 1 boodschap: '3. commentaar op bericht 1'
- id:4 parent_id: 1 boodschap: '4. commentaar op bericht 1'
- id:5 parent_id: 3 boodschap: '5. commentaar op bericht 3'
De volgorde waarin de commentaren moeten getoond worden is dus:
- Commentaar (id 1)
- Commentaar op bericht 1 (id 3)
- Commentaar op bericht 3 (id 5)
- Commentaar op bericht 1 (id 4)
- Commentaar op bericht 1 (id 3)
- Commentaar (id 2)
Na wat googlen besef ik dat het met een self-join zal zijn, waarschijnlijk een outer join, maar ik kom er niet uit hoe ik deze query kan opstellen. Hopelijk jullie wel !