[Çözüldü] Beceremediğim MySQL Sorgusu (Join)

Başlatan ersinkandemir, 28 Temmuz 2012 - 17:55:54

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

ersinkandemir


İyi günler, bir süredir bu sorguyu oluşturmaya çalışıyorum fakat beceremedim. Araştırmam da yeterli olmadı. Veritabanından pek anlamıyorum.


Şimdiden söyleyim acemi sorusudur, kızmayınız. :)


Tablolarım şöyle:


+++++++++++++++++++++++
|.........konu........|
+++++++++++++++++++++++
|.id.|.baslik.|.onay..|
+++++++++++++++++++++++
|.45.|.baslik.|...1...|
|.53.|.baslik.|...0...|
|.56.|.baslik.|...1...|
+++++++++++++++++++++++

+++++++++++++++++++++++++++++++++
|.............yorum.............|
+++++++++++++++++++++++++++++++++
|.id.|.metin..|.onay..|..konuid.|
+++++++++++++++++++++++++++++++++
|.1..|.falan..|...0...|....45...|
|.3..|.filan..|...1...|....56...|
+++++++++++++++++++++++++++++++++


Benim amacım, konu tablosundaki tüm onaylı satırları ve aynı sorgunun içerisinde "konu.id = yorum.konuid" eşitliğini taşıyan onaylı yorum sayısını alabilmek. Sorgu çıktım aşağıdaki gibi olsun istiyorum yani.


++++++++++++++++++++++++++++++++++++
|.id.|.baslik.|.onay.|.yorumSayisi.|
++++++++++++++++++++++++++++++++++++
|.45.|.baslik.|...1..|......0......|
|.56.|.baslik.|...1..|......1......|
++++++++++++++++++++++++++++++++++++


Ben ancak şu sorguyu kurabildim, o da ancak onaysız yorum sayısını alabiliyor. Sorguya "konu.id = yorum.konuid" eklediğim zaman sadece yorum bulunan konular dönüyor.



select konu.*, count( yorum.konuid ) as yorumSayisi from `konu` left join `yorum` on konu.id=imza.konuid where konu.onay='1' group by konu.id



Yardımlarınız için şimdiden teşekkür ederim.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 28 July 2012 - 19:03:20


StackOverFlow'dan aldığım yardımlarla çözmüş bulunuyorum. :)


SELECT sikayet . * , COUNT( imza.sikayetId ) AS yorumSayisi
FROM  `sikayet`
LEFT JOIN  `imza` ON sikayet.id = imza.sikayetId
AND imza.onay =  '1'
AND sikayet.onay =  '1'
GROUP BY sikayet.id
Where there's a shell, there's a way.