[英]How to create hierarchical tree structure and also inner join operation with another table using recursive query a MySQL
考慮這個 MySQL 表:
表格1
對於不支持 Common Table Expressions 的 MySQL 版本(最高版本 5.7),您可以使用以下查詢來實現:
select id,
username,
sponser_id
from (select * from db_users
order by sponser_id, id) products_sorted,
(select @pv := '5') initialisation
where find_in_set(sponser_id, @pv)
and length(@pv := concat(@pv, ',', id));
我想修改此查詢以與另一個表執行內部聯接操作。
表 2 對於表 2,您可以舉任何示例:
試試這個遞歸......參考: 在此處輸入鏈接描述
function recursiveCheck($src_arr, $parent_id=0, $tree = array())
{
foreach($src_arr as $idx => $row)
{
if($row['parent_id'] == $parent_id)
{
foreach($row as $k => $v)
$tree[$row['user_id']][$k] = $v;
unset($src_arr[$idx]);
$tree[$row['user_id']]['children'] = $this->recursiveCheck($src_arr, $row['user_id']);
}
}
ksort($tree);
return $tree;
}
$query = "Select * From tablename";
$result = mysqli_query($connect,$query);
$data = array();
while($row = mysqli_fetch_assoc($result)) {
array_push($data,$row);
}
echo '<pre>';
print_r(recursiveCheck($data));
echo '</pre>';
對於內部連接,你可以做
SELECT
select_list
FROM t1 INNER JOIN t2 ON join_condition1
INNER JOIN t3 ON join_condition2
...;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.