belki biraz garip gelicek ama bu sitenin sağ tarafında bulunan son yorumlar kısmında listelenen yorumların sql sorgusu nasıl oluşturuluyor.. ben listeleme ve count olayını aştımda desc olarak sıralayamadım bir türlü..
tablolar
haber_id
baslik
yorum_id
gonderen_id
count(haber_id) as toplam_mesaj
yorum id yi kullanınca distinct olayı geçerli olmuyor.. bir türlü yazamadım sql'i :)
çok alakasız oldu ama içimden geldi buraya sormak
- Frosten
- 3 yorum var
- 14 Mayıs 2006 08:56
« önceki yazı Bildirgeç in Google Gurubu |
sonraki yazı » Web tasarımla ilgili yasa tasarısı |
Yorumlar
select top 10 t1.baslik, count(t2.*) as sayı
from haberler t1 (NOLOCK), yorumlar t2 (NOLOCK)
where t1.haber_id = t2.haber_id
group by t1.haber_id
order by sayı desc
| impala | |
|
|
(0 puan) |
|
| 16 Mayıs 2006 00:03 |
degerleri Iki tablodan toplamak buyuk tablolar da performans problemi yaratabilir.
Ben olsam
haber_id
baslik
*count
*time
(yeni) iki kolon eklerdim.
Her yorum girildiginde basliklardaki o iki kolonu (count=count+1, time=now()) diyerek update,
time kolununa bir index
ve
'select * from basliklar order by time desc limit 10'
| ap | |
|
|
(0 puan) |
|
| 16 Mayıs 2006 10:51 |
dün de ben şu şekilde yapmıştım.. stored procedure içinde kullandım bunu..
select top 23 yorum.haber_id, haber.baslik, count(yorum.yorum_id) as toplam_yorum, max(distinct yorum.yorum_id) as son_id
from yorum
inner join
haber on yorum.haber_id = haber.haber_id
group by yorum.haber_id, haber.baslik
order by son_id desc
max(distinct kolon) diye bir olayı denedim vs 2005 express deki query builder ile..
sonrada repater ile işledim güzel oldu..
Protected Sub Repeater1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles Repeater1.ItemDataBound
Dim objRow As Data.DataRowView objRow = e.Item.DataItem
Dim baslik As HyperLink = CType(e.Item.FindControl("baslikLink"), HyperLink) Dim tmpBaslik As String = objRow("baslik")
If Len(tmpBaslik) > 17 Then baslik.Text = Left(tmpBaslik, 17) & "..." Else baslik.Text = tmpBaslik End If
baslik.NavigateUrl = "haberdetay.aspx?hid=" & objRow("haber_id")
End Sub
| Frosten | |
|
|
(0 puan) |
|
| 16 Mayıs 2006 12:44 |
pillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.
İlgili Yazılar
Bu Yazıyı Tutanlar
Beğendiğiniz bir yazıya "tuttum" demek için başlığın yanındaki yıldıza tıklayabilirsiniz.


