我试图优化一些数据检索。有几个与成员表相关的数据表。这个多级数据检索还有很多其他例子,但这是最简单的。
要显示我尝试构建的数组的类型,这就是我在PHP中实现它的方式
$memberID = 1;
$memberData = $db->Query('SELECT * FROM members WHERE id='.$memberID)->Fetch();
$memberData['events'] = $db->Query('SELECT * FROM events WHERE participant='.$memberID)->FetchAll();
$memberData['teams'] = $db->Query('SELECT * FROM teams WHERE member='.$memberID)->FetchAll();
$memberData['photos'] = $db->Query('SELECT * FROM photos WHERE member='.$memberID)->FetchAll();
$memberData['videos'] = $db->Query('SELECT * FROM videos WHERE member='.$memberID)->FetchAll();
这会产生如下数组:
Array(
'username'=>'JohnDoe',
'email'=>'johndoe@google.com',
'address'=>'Hollywood, CA',
'events'=>Array(
[0]=>Array(
'id'=>7,
'prize'=>'$1,000',
'participant'=>1,
'starting_date'=>'May 23, 2017'
),
[1]=>Array(
'id'=>9,
'prize'=>'$3,000',
'participant'=>1,
'starting_date'=>'June 14, 2016'
)
),
'teams'=>Array(
[0]=>Array(
'id'=>2,
'name'=>'LA Riots',
'member'=>1
),
[1]=>Array(
'id'=>5,
'name'=>'Queen City Kings',
'member'=>1
)
),
'photos'=>Array(
[0]=>Array(
'id'=>2,
'src'=>'photo2.png',
'member'=>1
),
[1]=>Array(
'id'=>5,
'src'=>'photo5.png',
'member'=>1
)
),
'videos'=>Array(
[0]=>Array(
'id'=>2,
'src'=>'youtu.be/a4J2KL4as',
'member'=>1
),
[1]=>Array(
'id'=>5,
'src'=>'youtu.be/Bg82JL0DSZ',
'member'=>1
)
)
)
我试图找到一种方法,使用可变数量的表动态执行此操作,并再次将所有数据存储在一个多维数组中。
这可以通过查询来实现吗?