我想编写laravel eloquent查询,它可以从titles表中选择所有标题,其中title_id不存在于title_count表中。这是一个例子。
标题表:
title_id
1
2
3
4
title_count表:
title_id
3
4
所以我的查询应该从标题表中选择id为1,2的标题。说实话,我不知道怎么做。我正在使用laravel 5.
我希望你能帮助我。提前致谢!
答案 0 :(得分:1)
使用联接来识别未出现在title_count中的标题。
DB::table('titles')->leftJoin('title_count', 'titles.title_id', '=', 'title_count.title_id')
->select('titles.*')
->whereNull('title_count.title_id')
->get();
答案 1 :(得分:0)
试试这个
DB::table('titles')->whereNotExists(function($query)
{
$query->select(DB::raw(1))
->from('title_count')
->whereRaw('title_count.title_id = titles.title_id');
})->get();
答案 2 :(得分: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();