【问题标题】:custom listing records using conditional使用条件的自定义列表记录
【发布时间】:2017-05-05 12:02:52
【问题描述】:

我的查询需要一些帮助,基本上我试图将我所有的 order_items 放在桌子上,但我需要通过 user_id 获取所有项目,但是有一个细节,我还想包括包含在列上的记录不同 users_id 上相同电子邮件的 3 倍以上。

例如:

table:

- id;
- user_id;
- email;

1- 从我的 (user_id) 获取所有记录; 2 - 获取 3 个不同 user_id 具有相同电子邮件值的所有记录;

这是我的查询:

$orders = OrderItem::select('email','user_id')->where('user_id',Auth::user()->id)->distinct('email')->get();

【问题讨论】:

    标签: laravel laravel-5 eloquent laravel-5.3 laravel-eloquent


    【解决方案1】:

    这应该可行:

    $orders = OrderItem::select(DB::raw('count(*) as email_count,email,user_id'))
     ->groupBy('email')
     ->where('email_count','>',2)
     ->orWhere('user_id',Auth::user()->id)
     ->get();
    

    【讨论】:

    • 抱怨是因为“count(*) as email_count”,它说不存在列 email_count
    • 我错过了一个) 立即尝试:
    • 奇怪,仍然给我错误,我把你有。
    • SQLSTATE[42S22]:找不到列:1054 'where 子句'中的未知列'email_count'(SQL:从order_items 中选择计数(*)作为电子邮件计数、电子邮件、用户IDemail_count > 2 或 user_id = 5 分组 email)
    猜你喜欢
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多