Laravel。对两个表的雄辩查询

问题描述 投票:0回答:3

我想编写laravel eloquent查询,它可以从titles表中选择所有标题,其中title_id不存在于title_count表中。这是一个例子。 标题表:

title_id
    1
    2
    3
    4

title_count表:

title_id 
    3
    4

所以我的查询应该从标题表中选择id为1,2的标题。说实话,我不知道怎么做。我正在使用laravel 5。 我希望你能帮助我。提前致谢!

php mysql sql laravel eloquent
3个回答
1
投票

使用联接来标识未出现在title_count中的标题。

DB::table('titles')->leftJoin('title_count', 'titles.title_id', '=', 'title_count.title_id')
                   ->select('titles.*')
                   ->whereNull('title_count.title_id')
                   ->get();

0
投票

试试这个

DB::table('titles')->whereNotExists(function($query)
{
    $query->select(DB::raw(1))
       ->from('title_count')
       ->whereRaw('title_count.title_id = titles.title_id');
})->get();

0
投票

没有测试过

DB::table('title_count')
  ->leftJoin('titles as t', 't.title_id', '=', 'title_count.title_id')
  ->select('t.*')
  ->where('t.title_id', '!=', 'title_count.title_id')
  ->get();
© www.soinside.com 2019 - 2024. All rights reserved.