2017-10-18 116 views
0

我能够查看所有连接的表值,但问题在于它正在被重复。我已经在控制器中使用了独特的功能。使用查询构建器连接从多个表中获取唯一值

我想显示交易的产品,数量和交易金额。

Table View

控制器:

$products = DB::table('transactions') 
     ->join('transactions_prods', 'transactions_prods.trans_id', '=', 'transactions.id') 
     ->join('products', 'products.id', '=', 'transactions_prods.prod_id') 
     ->join('users', 'users.id', '=', 'transactions.user_id') 
     ->join('transactions_solds', 'transactions_solds.trans_id', '=', 'transactions.id') 
     ->select('transactions_prods.prod_id as id', 
       'transactions.type as Type', 
       'products.prod_name as product_name', 
       'transactions_prods.qty as qty', 
       'transactions.id as transid', 
       'users.id as user_id', 
       'transactions_solds.trans_amt as amount') 
     ->where('transactions.type', '=', 'Sell') 
     ->where('transactions.id', '=', $id) 
     ->distinct()->get(); 

     return view('system.transactions.edit_transaction')->with('products', $products); 

edit_transactions.blade.php

 <div class="panel-heading"><b>TransID: {{$products[0]->transid}}</b> 
     <br> 
     <b>CashierID: {{$products[0]->user_id}}</b> 
    </div> 

    <div class="panel-body" style="overflow-x:auto;"> 

     <table id="data-table" class="table table-hover"> 
      <thead> 
       <tr> 
        <th valign="middle">ID</th> 
        <th>Product</th> 
        <th>Qty</th> 
        <th>Amt</th> 
        <th>Action</th> 

       </tr> 
      </thead> 
      <tbody> 
       @foreach($products as $product) 
        <tr> 
         <td>{{$product->id}}</td> 
         <td>{{$product->product_name}}</td> 
         <td>{{$product->qty}}</td> 
         <td>{{$product->amount}}</td> 
         <td> 
          <a href="#" class="btn btn-sm btn-danger">REMOVE</a> 
         </td> 
        </tr> 
       @endforeach 
      </tbody> 
     </table> 
    </div> 

表:

transactions 
id | type | user_id 

transactions_prods 
id | trans_id | prod_id| qty 

transactions_solds 
id | trans_id | trans_amt | trans_scd 

users 
id | name | role_id | email | password 
+0

这是一个LINQ问题 – Cloud

+0

使用Group而不是distinct。 – Rits

+0

群由什么特别?谢谢 – ElementsOfLife

回答

0

我已经自己解决了这个问题。感谢您的支持。我将prod_id和qty合并到了transactions_solds表中,并且使用了distinct。

1

这里的问题可能是个e加入到用户表中。根据你所期望的结果,这似乎不是必要的。

+0

但即使我删除用户从加入它仍然是相同的 – ElementsOfLife

相关问题