Ana*_*mov 4 php mysql join laravel eloquent
我有两张桌子,一张是学生,一张是经理
学生有名字的姓,最终管理人员的名字和姓氏了。
我还在学生表中存储了added_by以检查哪个经理添加了学生。
通过查询我加入表
$students = \App\Student::with('payment')->with('discontinuities')
->leftJoin('managers','students.added_by','=','managers.id')
->get();
Run Code Online (Sandbox Code Playgroud)
让我们说学生是
姓名 姓 添加_by
乔恩·多伊 1
经理是
身份证姓名姓氏
1 简母
因此,当我将这 2 个表与上面给出的查询连接起来时。我的学生变成
Jane doe因为这两个表中的名称冲突。
由于两列的名称相同,因此经理的姓名会覆盖学生的姓名。
我实际上只能加入 manager 表中的一些列,但是我需要这个 name 列打印出带有 manager name 的added_by列,当然我可以将列名更改为表中的其他内容,但这将是太多工作,因为我必须一一重构我的应用程序中的每个查询,并从头开始测试所有内容
所以我的问题是如何加入这两个表并防止同名列发生冲突?
尝试使用这个:
$students = \App\Student::with('payment')->with('discontinuities')
->leftJoin('managers','students.added_by','=','managers.id')
->select('students.*','managers.name as m_name','managers.surname as m_s_name','managers.other_column_if_needed','managers.another_column_if_needed')
->get();
Run Code Online (Sandbox Code Playgroud)
这样你的managers表的name列将被视为m_name,surname列将被视为m_s_name
| 归档时间: |
|
| 查看次数: |
6244 次 |
| 最近记录: |