我知道这个问题可能会问几次,但在某些时候,我无法理解,因为我这个问题。如何使用php和mysql使用多对多关系拉动数据
这里是问题
我有具有彼此像许多之间关系到许多关系三个表
表
Teacher Student Subject
+-----------+ +-------------+ +---------------+
| id| name | | id| name | | id| name |
+-----------+ +-------------+ +---------------+
| 1 | Ram | | 1 | Vikram | | 1 | Math |
| 2 | Ajay | | 2 | Sunil | | 2 | English |
| 3 | John | | 3 | Mohan | | 3 | Physics |
| 4 | Eric | | 4 | Pawan | | 4 | Chemistry |
| 5 | Manoj | | 5 | Deepak | | 5 | Biology |
| 6 | Shiv | | 6 | Alex | | 6 | Social Sci|
| | | | 7 | Shawn | | 7 | Hindi |
| | | | 8 | Mark | | 8 | History |
| | | | 9 | Joe | | | |
+-----------+ +-------------+ +---------------+
我要拉使用这三个表的数据连接表
连接表(连接点表)
Teacher_Subject Student_Subject
+-----------------------+ +---------------------------+
|teacher_id |subject_id | | student_id | subject_id |
+-----------------------+ +---------------------------+
| 1 | 7 | | 1 | 1 |
| 1 | 8 | | 1 | 3 |
| 2 | 1 | | 1 | 4 |
| 2 | 3 | | 1 | 5 |
| 3 | 2 | | 2 | 4 |
| 4 | 6 | | 2 | 7 |
| 5 | 4 | | 3 | 1 |
| 6 | 5 | | 3 | 4 |
| | | | 3 | 5 |
| | | | 4 | 2 |
| | | | 4 | 6 |
+-----------------------+ +---------------------------+
与MySQL和PHP
有没有办法用一个单一的查询
例如
我要拉的数据来拉这个数据,其中
$student = 'Vikram';
所以数据我想要这个数组
$result = [
'name' => 'Vikram',
'subjects_teacher' => [
[
'subject' => 'Math',
'teacher' => 'Ajay'
],
[
'subject' => 'Physics',
'teacher' => 'Ajay'
],
[
'subject' => 'Chemistry',
'teacher' => 'Manoj'
],
[
'subject' => 'Biology',
'teacher' => 'Shiv'
]
]
];
关系挖
所以,请帮我在这种情况下,因为我看过很多教程和google搜索,但没有得到这一点。
在哪里之间的关系桌子?就像上面的表格结构中没有任何东西,让我把老师“Ajay”与主题“数学”联系起来。 –
你“只是”必须将所有6个表格连接到一些“where x.id = y.id”,然后遍历结果来构建你的数组。你有没有尝试过? – Jeff
@AndrewLarsen再次看看我刚刚编辑 – User97798