php - 获取每个 eloquent pviot 的最后一项
问题描述
我有这个查询来获取每个项目的最后 20 个数字,它运行良好,但它进行了大约 1400 个查询,所以它不标准!
$entire = [];
$items = Item::where('Items.ISDelete' , 0)
->join('ItemInfoMain' , 'ItemInfoMain.ItemId' , '=' , "Items.ItemId")
->select('ItemInfoMain.ItmId')
->get;
foreach ($items as $item) {
$last20 = ItemInfos::where('ItmId' , $item->ItmId)
->orderBy('RowId' , 'desc')
->limit(20)
->get()
->toArray();
$entire = array_merge($entire , $last20 );
}
我的 ItemifnoMain 模型
class ItemInfoMain extends Model
{
protected $table = "ItemInfoMain";
protected $primaryKey = "ItmId";
public $timestamps = false;
public function itemInfo(){
return $this->hasMany(ItemInfos::class , 'ItmId');
}
}
我的 Iteminfos 模型
class ItemInfos extends Model
{
protected $table = "ItemInfos";
protected $guarded = [];
protected $primaryKey = "ItmId";
public $timestamps = false;
public $incrementing = true;
public function itemInfoMain(){
return $this->belongsTo(ItemInfoMain::class , 'ItmId');
}
}
商品型号:
class Item extends Model
{
protected $table = "Items";
protected $primaryKey = "ItemId";
public $timestamps = false;
public function itemInfoMain(){
return $this->hasMany(ItemInfoMain::class , 'ItemId');
}
}
我期待找到最佳优化的 sql 查询 我的核心是 sql server
解决方案
推荐阅读
- javascript - 页面加载后粘性导航栏不起作用
- javascript - 在 Chrome 和 VS Code 中,断点不会留在调试器中
- amazon-web-services - AWS SageMaker 数据准备
- r - Tukey 检验结果箱线图
- ios - Cordova 应用程序启动器插件不适用于 iOS 以使用 uri 启动 iOS 应用程序
- spring - 在 Spring RestController 中验证查询参数的最佳实践
- heroku - 当本地主机上没有遇到问题时,为什么在部署时出现 Heroku 错误消息 H12 超时和“内部服务器错误”?
- node.js - 如果不满足某些先决条件,是否有可用于退出测试的 Jest 钩子?
- php - 为什么我无法通过 People API 接收我的地址
- reactjs - 在模拟器中测试反应原生 Firebase 推送通知