【问题标题】:select a specfic column from a inner joined table in laravel从 laravel 的内部连接表中选择特定列
【发布时间】:2020-10-08 04:04:03
【问题描述】:

我需要 invoice,invoice_details 表中的所有列,但我只想从付款表中获取一列(列名:amount)。我的查询是什么?这是我的控制器。

$all_invoice = DB::table('invoice')
        ->join('invoice_details', 'invoice.invoice_id', '=', 'invoice_details.invoice_id')
        ->join('payment', 'invoice.invoice_id', '=', 'payment.invoice_id')
        ->where('invoice.client_id', 7)
        ->orderBy('invoice.invoice_id', 'DESC')
        ->get();

【问题讨论】:

标签: mysql laravel laravel-blade


【解决方案1】:

这很简单,你需要像这样在查询中添加选择子句。

$all_invoice = DB::table('invoice')->select(['invoice.*', 'payment.amount']) ->join('invoice_details','invoice.invoice_id','=','invoice_details.invoice_id') ->join('payment','invoice.invoice_id','=','payment.invoice_id')->where('invoice.client_id',7)->orderBy('invoice.invoice_id','DESC') ->get();

如果仍有查询,请参阅查询中的选择选项中的 laravel 文档。

【讨论】:

  • 它只获取金额列。但我需要 invoice,invoice_details 表中的所有列,但只有
【解决方案2】:

只使用选择

$all_invoice = DB::table('invoice')
       ->join('invoice_details', 'invoice.invoice_id','=','invoice_details.invoice_id')
       ->join('payment', 'invoice.invoice_id', '=', 'payment.invoice_id')
       ->where('invoice.client_id', 7)
       ->select('payment.amount')
       ->orderBy('invoice.invoice_id', 'DESC')
       ->get();

【讨论】:

  • 它只获取金额列。但我需要发票、invoice_details 表中的所有列,但只需要付款表中的金额
  • ->select('invoice.*','invoice_details.*','payment.amount') 如果你有相同的列名,你应该用'as'给一个不同的名字跨度>
猜你喜欢
  • 2018-01-07
  • 2019-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-08
  • 1970-01-01
  • 2019-06-15
相关资源
最近更新 更多