每个孩子都有一个parentid和位置。对于具有相同位置的子节点,有一行start='1'
。
我要做的是返回包含起始行的待处理行。
应该显示的结果是;开始(欧文)待定(戴夫,保罗)。这是因为他们的立场相同。这是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>";
}
答案 0 :(得分:0)
select * from `mytable` order by position, pending
如果这是唯一感兴趣的位置,您可以添加where position=1
子句。