【问题标题】:How can i convert complicated sql query to laravel Eloquent如何将复杂的 sql 查询转换为 laravel Eloquent
【发布时间】:2019-02-15 17:24:51
【问题描述】:

这项工作最好。但我想转换为 laravel 雄辩。任何人都可以帮助我。我不知道如何在 laravel 中使用 join。

DB::select("SELECT u.id,c.conversation_key,u.user_name,u.email
                                 FROM conversation c, user_profile u
                                 WHERE CASE 
                                 WHEN c.user_one = '8790'
                                 THEN c.user_two = u.id
                                 WHEN c.user_two = '8790'
                                 THEN c.user_one= u.id
                                 END 
                                 AND (
                                 c.user_one ='8790'
                                 OR c.user_two ='8790'
                                 )
                                 Order by c.conversation_key DESC Limit 20");

【问题讨论】:

  • 这里有完整的参考资料laravel.com/docs/5.7/queries。尝试一些东西,如果它不起作用,也许可以编辑你的问题,然后用 laravel 结果,我们可以再看一遍。
  • 你能帮我解决吗@JigarShah。
  • @DhruvRaval 我不是 Jigar,但这不是代码编写服务。如果是这样,即使在短期内它也将变得毫无用处,因为 SO 的真正价值在于解决更多人可能遇到的问题,而不仅仅是您的问题。此外,恕我直言,必须努力,否则质量会降低,SO 或多或少会变得无用。
  • 好的@reallynice。我会尝试解决我的问题。使用您或其他人的参考资料。

标签: php laravel


【解决方案1】:

转换后的 laravel Eloquen :

$userId = 8790;
$data['conversations'] = Conversation::selectRaw('user_profile.id, conversation_key, user_profile.first_name, user_profile.email')
            ->where(function ($q) use ($userId) {
                $q->where('user_one', $userId)
                    ->orWhere('user_two', $userId);
            })
            ->join('user_profile', function ($join) use ($userId) {
                $join->on('user_profile.id', '=', 'conversation.user_one')->where('conversation.user_one', '!=', $userId)
                    ->orOn('user_profile.id', '=', 'conversation.user_two')->where('conversation.user_two', '!=', $userId);
            })
            ->orderBy('conversation_key', 'DESC')
            ->take(20)
            ->get();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    相关资源
    最近更新 更多