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 TitanMVC
3 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 Developer
3 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 TitanMVC
3 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


[code=php,css,sql]kod[/code] , [url=http:...com] , [img=imaj linki] , [color=renk_kodu]metin[/color]