我在MySQL中有一些表和它的数据,但是我需要根据它的外键检索树显示中的所有数据。你知道吗
Table Structures
表后
+=====================================================================+
| column | type | nullable | key | foreign_key | rel_tbl | rel_col |
|========|======|==========|========|=============|=========|=========+
|Id |INT | NO |PRIMARY |NO | NO | NO |
|Posts |string| NO | NO |NO | NO | NO |
|PostMed |INT | yes |INDEX |yes | PostMed | Id |
|User |INT | NO |INDEX |yes | User | Id |
+=====================================================================+
表格用户
+======================================================================+
| column | type | nullable | key | foreign_key | rel_tbl | rel_col |
|=========|======|==========|========|=============|=========|=========+
|Id |INT | NO |PRIMARY |NO | NO | NO |
|Name |string| NO | NO |NO | NO | NO |
|Email |string| NO |unique |NO | NO | NO |
|UserPhoto|string| NO |unique |Yes |UserPhoto|Id |
+======================================================================+
表格用户照片
+======================================================================+
| column | type | nullable | key | foreign_key | rel_tbl | rel_col |
|========|======|==========|========|=============|=========|=========+
|Id |INT | NO |PRIMARY |NO | NO | NO |
|Value |string| NO | NO |NO | NO | NO |
|Type |string| NO | NO |NO | NO | NO |
+=====================================================================+
表格已邮递
+======================================================================+
| column | type | nullable | key | foreign_key | rel_tbl | rel_col |
|========|======|==========|========|=============|=========|=========+
|Id |INT | NO |PRIMARY |NO | NO | NO |
|Value |string| NO | NO |NO | NO | NO |
|Type |string| NO | NO |NO | NO | NO |
+=====================================================================+
And This is the data
发布
+=============================+
|Id | Posts | PostMed | User |
|===|========|=========|======|
|1 |Hello | 1 | 1 |
|2 |World | Null | 1 |
|3 |Dominate| 2 | 2 |
+=============================+
用户
+====================================+
|Id | Name | Email |UserPhoto|
|===|=======|==============|=========|
|1 |kzul | kzvl@mail.com|1 |
|2 |jhon | jhon@mail.com|2 |
+====================================+
用户照片
+===========================+
|Id | Value | Type |
|===|===========|===========|
|1 |kzul.jpg | image/jpeg|
|2 |jhon.png | image/png |
+===========================+
邮递
+===========================+
|Id | Value | Type |
|===|===========|===========|
|1 |kzul.jpg | image/jpeg|
|2 |jhon.mp3 | audio/mp3 |
+===========================+
如您所见,表posts有两个外键列posted和User,posted列与列Id引用的表posted有关系,而且User列与Id列引用的表User有关。 因此,当我尝试从表Posts中检索所有数据时,任务必须是JSON类型,并在树中格式化,如下所示:
[
{
"Id": 1,
"Posts": "Hello",
"PostMed": {
"Id": 1,
"Value": "kzul.jpg",
"Type": "image/jpeg"
},
"User": {
"Id": 1,
"Name": "kzul",
"Email": "kzvl@mail.com",
"UserPhoto":{
"Id": 1,
"Value": "kzul.jpg",
"Type": "image/jpeg",
}
}
},
{
"Id": 2,
"Posts": "World",
"PostMed": null,
"User": {
"Id": 1,
"Name": "kzul",
"Email": "kzvl@mail.com"
"UserPhoto":{
"Id": 1,
"Value": "kzul.jpg",
"Type": "image/jpeg",
}
}
},
{
"Id": 3,
"Posts": "Dominate",
"PostMed": {
"Id": 2,
"Value": "jhon.mp3",
"Type": "audio/mp3"
},
"User": {
"Id": 2,
"Name": "jhon",
"Email": "jhon@mail.com"
"UserPhoto":{
"Id": 2,
"Value": "jhon.png",
"Type": "image/png",
}
}
}
]
如果我检索另一个有外键的表,它将如上所示。 在PHP或Python中的任何例子,建议工具或算法,我可以使用这些树来创建我的数据?你知道吗
对不起,我英语不好
目前没有回答
相关问题 更多 >
编程相关推荐