laravel - Laravel连接两个表不匹配的同名列
问题描述
我有 2 张桌子 -
用户(id、institution_id、名称...)
机构(id、district_id、名称、...)
我想要所有 District_id = 1 的用户。我没有在任何模型中使用雄辩的关系。
我试过
$users = User::join('establishments', 'establishments.id', '=', 'users.establishment_id')->where('district_id', '=', $admin_district_id)->where('is_active', '=', 1)->paginate(3);
但它返回机构名称而不是用户名。
解决方案
这是因为列名name
不明确。
一种选择是为用户名明确指定别名为 user_name
$users = User::join('establishments', 'establishments.id', '=', 'users.establishment_id')
->select('users.name AS user_name', 'establishments.name AS establishment_name', 'users.*', 'establishments.*')
->where('district_id', '=', $admin_district_id)
->where('is_active', '=', 1)
->paginate(3);
为了users table name
您现在可以使用user_name
推荐阅读
- mysql - 我应该什么时候关闭 MySQL 中的语句
- list - 如何在haskell中生成具有自己数据类型的列表
- xml - 如何为一周中的几天编写有效的 xsd ?
- java - 如何使用 ObjectMapper 从空 JSON 文件反序列化为 Java 对象
- litho - 如何在 LayoutSpec 或 Android 中的 XML 中添加 MountSpec 组件
- java - 使用递归插入二叉树
- python - Tensorflow:模块'tensorflow'没有属性'constant'
- html - 调整标签时合并内联字段
- asp.net-core - 如何在运行时选择 ASP.net Core Identity 使用的数据库?
- pandas - 如何根据其在熊猫中的组找到列的平均值