一对多关联怎么根据指定条件查询

yixin

问题描述

我有商品表goods;有商品规格表 goods_sku;还有商品分组表goods_sku_group;
goods_sku里面有goods_id和group_name;goods_sku_group里面有goods_id和Name;其中 goods_sku的group_name和goods_sku_group的name一致;
所以我在查询 某个商品的分组时下面有哪些规格我就会在goods_sku_group建立一对多goods_sku关联,关联字段时 group_name 和name;

程序代码或配置

控制器;
$where['goods_id'] = 1;
$list = GoodsSkuGroupModel::with([ 'sku:id,name,attribute,goods_id,moq,price,stock,is_retail,group_name,delivery_template_id'])->where($where)->select($select)->get()->toArray();
模型:
在GoodsSkuGroupModel里:
public function sku() : HasMany
{
return $this->hasMany(GoodsSkuModel::class , 'group_name' , 'name'')
->where('status' , GoodsStatusEnum::ENABLE->value)->orderByDesc('sort');
}

重现问题的步骤

上现在表里是不同goods_id对应的name重复了。比如 goods_id =1/2时,,name = 'a';
通过以上代码,查询goods_id=1时,下面的分组对应的sku。。就会把goods_id=2时的分组名称的'a'的sku也查询出来。就会重复。
截图

321 1 0
1个回答

yixin

已解决

  • 暂无评论
×
🔝