MySQL Tüm Velilerden Tüm Çocuklar seçme

0 Cevap php

Ben bu gibi basit bir tablo var:

+------------+---------+-----------+--------------+
| comment_id | post_id | parent_id | comment_text |
+------------+---------+-----------+--------------+
|          1 |     200 |         0 |          a   |
|          2 |     200 |         0 |          b   |
|          3 |     200 |         1 |          c   |
|          4 |     200 |         1 |          d   |
|          5 |     200 |         0 |          e   |
|          6 |     200 |         2 |          f   |
|          7 |     200 |         2 |          g   |
|          8 |     200 |         0 |          h   |
|          9 |     200 |         0 |          i   |
|         10 |     200 |         1 |          k   |
+------------+---------+-----------+--------------+
  • Sütun parent_id Bu yorum, bu kimliği ile başka yoruma bir cevap olduğunu söyler.

  • Yorumlarına sadece bir düzey yuvalama var diyelim.

Şimdi only first 5 ebeveyn yorum ve onlara ait tüm çocukların dönmek gerekiyor.

Bunun için bir sorgu var ama bir sorun var.

    (
     SELECT c.* 
     FROM comments AS c 
     WHERE c.post_id = '200' AND parent_id='0'
     LIMIT 0,5
    )
    UNION 
    (
     SELECT c.*
     FROM comments AS c
     WHERE c.post_id = '200' AND c.parent_id IN 
     (
      SELECT c.comment_id
      FROM comments AS c 
      WHERE c.post_id= '200' AND parent_id='0'
      LIMIT 0,5
     )
    )

The problem is that my current mySQL version doesn't support LIMIT in sub-queries. Also it seems that I execute same SELECT query twice!

Ben daha şık yapmak için bir yolu olmalı eminim.

0 Cevap