使用查询构建器连接从多个表中获取唯一值

Get unique values from multiple tables using query builder joins

我可以查看所有连接的 table 值,但问题是它被复制了。我已经在我的控制器中使用了 distinct。

我想显示交易的产品、数量和trans_amount。

控制器:

$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

这里的问题可能是加入用户 table。根据您想要的结果,这似乎没有必要。

我已经自己解决了这个问题。感谢大家的支持。我将 prod_id 和 qty 合并为 transactions_solds table 并使用了 distinct.