【发布时间】:2016-11-07 18:39:56
【问题描述】:
我的数据库中有 2 个表。
表 A
StudentID Name Age
1 John Doe 15
1 John Doe 15
2 Marry Smith 20
表 B
StudentID Courses
1 Math
1 Science
2 Art
现在我使用 INNER JOIN 查询
$query = $db->prepare("Select a.studentid, a.name, a.age, b.studentid, b.courses FROM tableA a INNER JOIN TABLEB b ON a.studentid = b.studentid");
$query->execute();
$stmt = $query->fetchAll(PDO::FETCH_ASSOC);
$everything = array();
$groupArray = array();
foreach($stmt as $row){
$everything[] = $row;
}
foreach($everything as $e){
$groupArray[$e['studentid']][] = $e;
}
我得到的结果只是按学生ID分组
1 => array (size=2)
0 => array (size=5)
'StudentID' => string '1'
'Name' => string 'John Doe'
'Age' => string '15'
'StudentID' => string '1'
'Courses' => string 'Math'
1 => array (size=5)
'StudentID' => string '1'
'Name' => string 'John Doe'
'Age' => string '15'
'StudentID' => string '1'
'Courses' => string 'Science'
2 => array (size=2)
0 => array (size=5)
'StudentID' => string '2'
'Name' => string 'Marry Smith'
'Age' => string '20'
'StudentID' => string '2'
'Courses' => string 'Art'
我希望展示的是对它们进行分组,这样我就不会得到重复的学生。我怎样才能做到这一点?提前致谢
1 => array (size=2)
0 => array (size=5)
'StudentID' => string '1'
'Name' => string 'John Doe'
'Age' => string '15'
'Courses' => array(
0 => String 'Math'
1 => String 'Science'
)
【问题讨论】: