【问题标题】:Laravel How to do this relationship queryLaravel 如何进行这种关系查询
【发布时间】:2016-10-11 04:43:31
【问题描述】:

我有一个像这样的当前数据库设置:

我有一个用户模型/投票模型/组模型/投票子项模型。 用户和投票之间是多对多的关系,用户和子项之间也是多对多的关系。

我想获得在时间戳创建的所有投票,这些投票属于一组组 id,其中特定用户在 user_vote_casts 表中没有条目。

如何在 laravel 中做到这一点?

在mysql中,我认为是这样的:

SELECT * from vote left join user_vote_casts on vote.id = user_vote_casts.vote_id where user_vote_casts.user_id IS NULL AND vote.id IN (12,3142,512,51,12,1) ;

【问题讨论】:

标签: php mysql laravel join eloquent


【解决方案1】:

根据您的 SQL 查询进行 Laravel 查询:

$users = DB::table('vote')
            ->leftJoin('user_vote_casts', 'vote.id', '=', 'user_vote_casts.vote_id')
            ->select('vote.*')
            ->where('user_vote_casts.user_id','')
            ->whereIN('vote.id',[12,3142,512,51,12,1])
            ->get();

【讨论】:

    【解决方案2】:

    我最终做的是:

        $vote = Vote::leftJoin('user_vote_casts', function ($join) {
                    $join->on('vote.id', '=', 'user_vote_casts.vote_id');
                })->whereNull('user_vote_casts.user_id')
    ->orderBy('vote.updated_at', 'DESC')
    ->take(30)->get();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-15
      • 2019-03-28
      • 2021-03-21
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 2017-03-05
      相关资源
      最近更新 更多