繁体   English   中英

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

[英]Get unique values from multiple tables using query builder joins

我可以查看所有联接的表值,但问题是它正在重复。 我已经在控制器中使用了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

这里的问题很可能是联接到用户表。 根据您想要的结果,这似乎没有必要。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM