【问题标题】:How to get distinct single column value while fetching data by joining two tables如何通过连接两个表获取数据时获取不同的单列值
【发布时间】:2018-10-30 10:58:35
【问题描述】:
$data['establishments2'] = Establishments::Join("establishment_categories",'establishment_categories.establishment_id','=','establishments.id')->where('establishments.city','LIKE',$location)->where('establishments.status',0)->whereIn('establishment_id',array($est_data))->get(array('establishments.*'));

这是控制器条件。

我有两个表,在表 1 中,我将 id 与表 2 匹配,然后从表 1 中获取数据,在表 2 中,我在表 1 中有多个相同 id 的值。我只想一次获取表 1 值的数据,但是因为我在table2中hvg多个相同id的数据,数据重复多次,谁能告诉我如何只获取一次wheater table2具有相同id的单个值或多个值的数据...谢谢

【问题讨论】:

    标签: laravel


    【解决方案1】:

    您可以通过选择所需的字段名称来完成 而是从表格机构中获取所有字段

    $data['establishments2'] = Establishments::Join("establishment_categories",'establishment_categories.establishment_id','=','establishments.id')->where('establishments.city','LIKE',$location)->where('establishments.status',0)->whereIn('establishment_id',array($est_data))->get(array('establishments.*'));
    

    您可以从表格机构中选择特定字段,例如

     $data['establishments2'] = Establishments::Join("establishment_categories",'establishment_categories.establishment_id','=','establishments.id')->where('establishments.city','LIKE',$location)->where('establishments.status',0)->whereIn('establishment_id',array($est_data))->get('establishments.fieldName');
    

    或者你也可以这样做

    $data['establishments2'] = `Establishments::Join("establishment_categories",'establishment_categories.establishment_id','=','establishments.id')->where('establishments.city','LIKE',$location)->where('establishments.status',0)->whereIn('establishment_id',array($est_data))->select('establishments.fieldName')->get();`
    

    【讨论】:

    • 谢谢,但实际上我有一个条件,如果 table1 数据存在于 table2 中,那么只有 table1 的数据应该是 diplsay,但问题是如果我在 table2 中有两个相同 id 的数据,那么它正在从 table1 中获取相同的数据两次
    • 为此,您可以使用 distinct () 方法消除所有重复数据并仅显示一次,如 select()->distinct()->get();
    • $data['establishments2'] = Establishments::Join("establishment_categories",'establishment_categories.establishment_id','=','establishments.id')->where('establishments.city' ,'LIKE',$location)->where('establishments.status',0)->whereIn('establishment_id',array($est_data))->distinct()->get(array('establishments.*' ));我用不同的方式改变了我的条件,请看一下,它仍然在获取多个数据
    • 从 get 中删除数组并使用 get('establishments.*');
    • 如果我从 get(array('establishments.*')); 中删除数组,然后显示错误为类型错误:传递给 Illuminate\Database\Grammar::columnize() 的参数 1 必须是数组类型,字符串给定我现在必须做的事情,请帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 2018-08-17
    • 1970-01-01
    相关资源
    最近更新 更多