Modelde Left join/Inner Join ile diğer tablodan birden fazla satır data çekme
Merhabalar,benim answers ve answer_comments adında 2 tablom var.
answers -> AnswerID
answer_comments -> CommentAnswerID ile birbirine bağlı.
Yani AnswerID'si 1 olan cevaba 3 tane yorum yapıldıysa bana sadece 1 tane yorum dönüyor. Diğer tablomdan birden fazla nasıl data çekebilirim. Kullanmış olduğum kod aşağıdadır.
return DB::table('answers as t1')
->leftJoin('users as t2', 't1.AnswerQustionUserID=t2.UserID')
->leftJoin('answer_comments as t3', 't1.AnswerID=t3.CommentAnswerID')
->select('
t1.*,
t2.UserID, t2.Username, t2.UsernameSef, t2.UserNameSurname, t2.UserAvatar, t2.UserJob, t2.UserGender,
t3.* ')
->Where('t1.AnswerQuestionID', '=', $QuestionID)
->Where('t3.CommentAnswerID', '=', $QuestionID)
->groupBy('t1.AnswerID')
->getAll();
Cevaplar (3)

Turan Karatuğ
Software Developer - Creator of TitanMVC3 yıl önce
AnswerID'ye göre grupladığınız için, bir adet answer olduğu durumlarda bir adet sonuç dönecektir. Bu durumda groupBy'ı kaldırmanız gerekir.

developerman
Web Developer3 yıl önce
Evet groupby'ı kaldırdım sorun çözüldü fakat şöyle bir durum var.
1 numaralı cevaba 5 tane yorum varsa 5 farklı satırda dönüyor bana. Farzediyorum ki şöyle bir çıktı alabilir miyim ?
AswerID: 1,
AnswerComments: [
{Comment1},
{Comment2},
{Comment3}
];

Turan Karatuğ
Software Developer - Creator of TitanMVC3 yıl önce
Join sonucunda, cevaba ait kaç yorum varsa o kadar satır gelecektir. Sorguda cevap tablosunun kolonlarını select deyiminden kaldırın. Sadece yorumları almanız yeterli olacaktır.
Cevap Yazın

developerman
3 yıl önce sordu.Çok Okunanlar
- 9014 [v2.x] Mail gönderme - SMTP connect() failed
- 5876 [v1.x] Sınırsız Kategori/Menu Bulabildiğim en iyi çözüm !
- 2314 [v1.x] Üye giriş ve kayıt olması ?
- 2310 [v1.x] TitanPhp örnek uygulamalar
- 2200 [v1.x] Sınırsız Kategori/Menu ÖNEMLİ
- 2158 [v1.x] index.php?url şeklinde kullanmadan controllere erişemiyorum.
- 1937 [v2.x] vendor/autoload hatası (kurulum)
- 1904 [v1.x] Veritabanı Kayıt Ekleme
- 1702 [v1.x] $this->load->plugin('template');
- 1600 [v1.x] fonksiyonların içinde veritabanı işlemi