我知道這個問題可能會問幾次,但在某些時候,我無法理解,因爲我這個問題。如何使用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