Não existe consulta
Sep 27 2020
Eu tenho um problema com uma consulta.
na tabela de posts, tenho posts.id, então, na tabela de comentários, tenho posts_id (chave estrangeira -> posts.id), reviews.id. Eu quero consultar aqueles posts_id que não existem na tabela de comentários (post_id).
Estou usando construtores de consulta laravel. estou tentando como ->
$r = DB::table('reviews') ->select(DB::raw('count(id) as rev_count, posts_id')) ->groupBy('posts_id') ->get(); foreach ($r as $rr) { $p = DB::table('posts')
->select('id')
->where('id', '!=', $rr->posts_id)
->get();
}
extraí o valor com sucesso. mas com muita complexidade, talvez com erros. se houver consulta direta para extraí-lo?
Respostas
1 Sujitmohanty30 Sep 27 2020 at 19:03
Que tal usar not exists,
Consulta SQL:
select *
from posts
where not exists
(select reviews.posts_id
from reviews
where reviews.posts_id = posts.id)
laravelConsulta equivalente :
DB::table('posts')
->select('id')
->whereNotExists(function ($query) { $query->select("reviews.posts_id")
->from('reviews')
->whereRaw('reviews.posts_id = posts.id');
})
->get();
Existe este link SO que também pode ser útil para você
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?