laravel - 从 Laravel 连接查询中选择同一个表中的多个列是否有更短的方法?
问题描述
我正在使用 Laravel 8 和 PHP 7.3 并有这个 Laravel 查询:
$data = DB::table('mytable')
->join('myothertable', 'mytable.id', '=', 'myothertable.mytable_id')
->select(
'mytable.id',
'mytable.column1',
'mytable.another_column',
'mytable.created_at',
'myothertable.id'
)
->get();
正如您在 select 语句中看到的那样,重复选择了其中 4 个列的表名('mytable'),我想知道是否有任何较短的可能形式,如我正在寻找的这种形式:
$data = DB::table('mytable')
->join('myothertable', 'mytable.id', '=', 'myothertable.mytable_id')
->select(
'mytable{id,column1,another_column,created_at}',
'myothertable.id'
)
->get();
注意 :) 我从这里抢走了查询。
解决方案
您可以做的是自己进行查询,而不是使用内置函数。查询看起来像这样:
DB::select('SELECT id, column1, another_column, created_at FROM TABLE1
JOIN (SELECT id from myothertable) AS TABLE2 on mytable.id = TABLE2.id')
不确定这是否是您正在寻找的,但它是加入数据的另一种方式 =)
推荐阅读
- python - 使用自制软件更新 python3 时,我收到一条错误消息“未安装 python3”
- python - 调用 WebSocket.close 时现有等待会发生什么
- python - PyCharm 中 Python 网络爬虫的问题。(初学者)
- spring-boot - Zuul 代理在 Tomcat vai SpringBootServlet 上不起作用
- javascript - 仅当输入有数据时才启用提交按钮
- python - 为几个连续列上的相同值设置熊猫数据框的子集
- react-native - 类到函数组件
- listview - 是什么导致鼠标指针不与组合框或列表视图上的选择对齐
- rust - 采用通用枚举或任何可以在函数中“作为使用”的类型
- java - 不等于 Spring Boot REST/JPA 服务上的查询