Sorgu yok
Sep 27 2020
Bir sorgu ile sorunum var.
gönderi tablosunda posts.id var, ardından inceleme tablosunda posts_id (yabancı anahtar -> posts.id), reviews.id var. incelemeler tablosunda (post_id) bulunmayan bu posts_id'i sorgulamak istiyorum.
laravel sorgu oluşturucuları kullanıyorum. deniyorum ->
$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();
}
değeri başarıyla çıkardım. ama çok fazla karmaşıklıkla, belki de hatalı. Herhangi bir doğrudan sorgu varsa onu çıkarmak için?
Yanıtlar
1 Sujitmohanty30 Sep 27 2020 at 19:03
Kullanmaya ne dersin not exists,
SQL sorgusu:
select *
from posts
where not exists
(select reviews.posts_id
from reviews
where reviews.posts_id = posts.id)
Eşdeğer laravelsorgu:
DB::table('posts')
->select('id')
->whereNotExists(function ($query) { $query->select("reviews.posts_id")
->from('reviews')
->whereRaw('reviews.posts_id = posts.id');
})
->get();
Bu SO bağlantısı var da sizin için yararlı olabilir
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'