考虑此MySQL表:
表1
对于不支持通用表表达式的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,您可以使用任何示例:
尝试此递归... 参考: enter link description here
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
...;
检查enter link description here