2017-10-18 9 views
0

Je peux afficher toutes les valeurs de la table jointe, mais le problème est dû au fait qu'elle est en cours de duplication. J'ai déjà utilisé distinct dans mon contrôleur.Récupère des valeurs uniques de plusieurs tables à l'aide des jointures du générateur de requête

Je souhaite afficher le produit, la quantité et le trans_amount d'une transaction.

Table View

Controller:

$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> 

Tables:

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

Ceci est une question LINQ – Cloud

+0

Utilisez Group by au lieu de distinct. – Rits

+0

Groupe par quel particulier? merci – ElementsOfLife

Répondre

0

J'ai déjà résolu ceci par mes propres moyens. Merci pour tout votre soutient. J'ai fusionné le prod_id et la quantité dans la table transactions_solds et utilisé distinct.

1

Le problème ici est probablement e e rejoindre la table des utilisateurs. Cela ne semble pas nécessaire en fonction des résultats que vous désirez.

+0

mais même si je supprime les utilisateurs de la jointure, il est toujours le même – ElementsOfLife