关于laravel9多表联查的求助
我之前一直是使用thinkphp的,而联查之前是一直在使用join,可是最近切换到laravel9后发现join好像和原来用的tp完全不一样。然后我这边有三层表结构依次关联,我想最终获取一个list,list里面可选的显示某些字段,比如a表的id和tite,b表的name,c表的username,在尝试过Joins方法和whereColumn方法后依然没有达到预期的效果,也有请教朋友,但是最终得到的解答是用循环,可是我又不想使用循环,想用原来用tp的joinleft的方式来获取,但一直没有思绪也没有检索到相关答案,所以来社区提问,哪位大大能给个思路或demo。感谢
想拿到数据的结果和结构
[
{
"id":1,
"title":"我是id为1的数据",
"bTable":[
{
"name":"武汉"
},
{
"name":"北京"
},
{
"name":"上海"
}
],
"cTable":[
{
"username":"张三"
},
{
"username":"李四"
}
]
}
]
A表结构和数据
id | title |
---|---|
1 | 我是id为1的数据 |
2 | 我是id为2的数据 |
3 | 我是id为3的数据 |
B表结构
使用Aid与A表的id关联
bid | aid | name |
---|---|---|
1 | 1 | 武汉 |
2 | 1 | 北京 |
3 | 1 | 上海 |
4 | 2 | 北京 |
5 | 3 | 南京 |
C表的结构
使用aid字段与A表的id关联
使用mid与B表的bid关联
aid | bid | username |
---|---|---|
1 | 1 | 张三 |
1 | 2 | 李四 |
1 | 1 | 张三 |
2 | 4 | 李四 |
第一种:
OR
第二种