我有以下内容:
ID NAME PAREN_ID
1 a null
2 b null
3 c 2
4 d 3
我想列出ID 4项及其所有父项,所以我想得到:
4 d 3
3 c 2
2 b null
我试了一下:
SELECT * FROM categories c1
JOIN categories c2 ON c2.ID = c1.PARENT_ID;
但这不是好结果,即使我尝试过滤到ID 4,也不会返回任何内容。 它的MySQL!
答案 0 :(得分:0)
我不确定你怎么能用MySQL做到这一点。我认为你最好的选择是以递归的方式获取所有内容。
function getCategories( $id ) {
$ret = array();
$cat = mysql_query( 'SELECT * FROM categories' );
$curid = $id;
do {
$ret[] = $cat[ $curid ];
$curid = $cat[ $curid ][ 'PARENT_ID' ];
} while ( $curid );
return $ret;
}
您应该更改它以便它使用PDO。
唯一的问题是查询返回大量数据。