【问题标题】:Convert SQL query to use Laravel query builder将 SQL 查询转换为使用 Laravel 查询生成器
【发布时间】:2019-10-14 15:21:58
【问题描述】:

我正在尝试将此 SQL 代码转换为使用 Laravel 的查询生成器。

SELECT b.name 
FROM brands b
INNER JOIN products p 
    ON b.id = p.brand_id
INNER JOIN transaction_sell_lines tr 
    ON p.brand_id=tr.product_id

【问题讨论】:

  • 您可以毫无问题地使用 DB::raw()
  • 你试过什么?你被困在哪里了?您使用的是 Eloquent 还是 DB 查询构建器?
  • @Zendy,如果您想坚持使用相同的旧 sql 查询,那么使用框架有什么用。
  • @user7747472 问题本身仅指定他们希望将此查询转换为 Laravel 代码,而无需详细说明他/她使用什么。我只是推荐最简单的转换方法。
  • 上面写着Laravel's query builder

标签: mysql laravel laravel-query-builder


【解决方案1】:

假设你有以下模态

  1. 品牌
  2. 产品
  3. TransactionSellLines

对于Brand.php [即品牌模式]

public function products(){
  return $this->hasMany(Product::class,'brand_id','id');
}

对于Product.php模态

public function transactionSellLines(){
  return $this->hasMany(TransactionSellLines::class,'product_id','id');
}

那么你的 Laravel Eloquent 查询将是这样的:

Brand::with('products.transactionSellLines')->get();

【讨论】:

    【解决方案2】:

    使用查询,

    $res=DB::table('products')
        ->select('brands.name')
        ->join('brands','brands.id','=','products.brand_id')
        ->join('transaction_sell_lines','products.brand_id','=','transaction_sell_lines.product_id')
        ->get();
    

    【讨论】:

      猜你喜欢
      • 2021-08-07
      • 2015-12-13
      • 1970-01-01
      • 2017-06-01
      • 2019-09-08
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      • 2023-01-20
      相关资源
      最近更新 更多