1

各子行には、親IDと位置があります。同じ位置にある子行の場合、。が1つの行になりstart='1'ます。

私がやろうとしているのは、保留中の行とその開始行を返すことです。

表示する必要のある結果は次のとおりです。start(owen)pending(dave、paul)。これは、同じ位置にあるためです。これがSQLフィドルですhttp://sqlfiddle.com/#!2/e6e54/1

  id |  name | parentid|  position|  start  |  pending |
   1 |  mike |    0    |    0     |    0    |     0    |
   2 |  dave |    1    |    1     |    0    |     1    | 
   3 |  paul |    1    |    1     |    0    |     1    |
   4 |  john |    1    |    2     |    1    |     0    |
   5 |  bret |    1    |    2     |    0    |     0    |
   6 |  owen |    1    |    1     |    1    |     0    |
   7 |  rick |    1    |    3     |    1    |     0    |
   8 |  jaye |    1    |    3     |    0    |     0    |



    $getquery = mysql_query("select child.*
from `mytable` child inner join `mytable` parent 
on parent.id=child.parentid
inner join `mytable` child2 on child.parentid=child2.parentid
and child2.pending='1'
where child.start='1' ORDER BY child.id DESC");



while($row=mysql_fetch_assoc($getquery)) {

 $name = $row['name'];

echo "<p>Name: $name </p>";

}
4

1 に答える 1

0
select * from `mytable` order by position, pending

where position=1それが関心のある唯一の位置である場合は、句を追加できます。

于 2012-04-08T15:37:44.850 に答える