讨论数量: 
            
            
    
            大神,是表中的字段:
GOODS表:[{id字段:1,shopid:10000},{id字段:1,shopid:10001},{id:1,shopid:10000}]
SHOPS表:[{id字段:10000,district字段:'杭州'},{id:10001,district:'杭州'},{id:10002,district:'上海'}]
如何查询:shops表中district字段=‘杭州’的全部goods表数据。
SELECT * FROM goods WHERE shopid IN (SELECT id FROM shops WHERE distrit = '杭州')
来硬的
如果是已经对已经获取到的数据进行过滤整合 如下
$shops = collect([['id' => 10000,'district' => ’杭州’],['id'=>10001,'district' =>’杭州’],['id'=>10002,'district'=>’上海’]]);
$goods = collect([['id' => 1,'shopid'=>10000],['id'=>1,'shopid' =>10001},['id'=>1,'shopid'=>10000]]);
$shopidsArr = $shops->where('district', '=', '杭州')->pluck('id')->values()->toArray();
$goodsData = $goods->whereIn('shop_id', $shopIds);
如果是模型 且建立模型关联关系
// Goods模型中存在关系shop
public function shop() {
  return $this->belongsTo(Shop::class, 'shopid', 'id');
}
// 数据获取
$data = Goods::whereHas('shop', function ($query) {
  $query->where('district', '=', '杭州')
})->get();
如果是直接查询语句
SELECT * FROM GOODS WHERE shopid IN ( SELECT id FROM SHOPS WHERE district= '杭州');
            
谢谢各位大佬,按各位大佬的方法,果然行!!!我转化写成了这种方式!!!谢谢大佬们!!!
        $goods = DB::table('goods')
                    ->join('shop', 'goods.shop_id', '=', 'shop.id')
                    ->where('shop.district', '=', '杭州市')
                    ->select('goods.*')
                    ->get();
          
                    
                    
          
          
                关于 LearnKu
              
                    
                    
                    
 
推荐文章: