Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
26
Cevap
1955
Tıklama
0
Öne Çıkarma
Cevap: SQL grubu (2. sayfa)
T
17 yıl
Yüzbaşı

bir soruda benden dün baya uğraştım ama istediğim sonucu bir türlü alamadım ne istiyorum kısmını biraz açayım ... şlimdi konu ve mesaj olmak üzere 2 ayrı tablom var konular konu başlığı konu id ve eklenme tarihi mesaj ise konu id mesaj mesaj id eklenme tarihi olarak sıralanmakta benim istediğim en son mesaj atılan 5 başlığı seçtirmek mysql database i ile çalışıyorum şimdi bir kaç farklı yöntem denedim ama sonuçlar hep saçmaladı saçmalamaktan kastım 1 konuya 2 yeni mesaj atılmışsa 2 sinide göstermesi oysa benim istediğim tek konudaki en yeni mesaj

select * from mesaj order by eklenmetarihi limit 5 ile bir sıkıntı yaşamadan en son mesajları çektiriyorum ancak bir gruplama yapmıyor
select * from mesaj group by konu id order by eklenmetarihi limit 5
dediğimde ise gruplama sonucu en büyük mesaj id yi döndermiyo :S çözemedim daha
DISTINCT komutu ise farklı tarihten dolayı çuvallıyor :S tarih kısmını sorgudan çıkartıncada bidaha tarihleri çekmek için sorgu döndermem gerekiyor


Bu mesaja 1 cevap geldi.
3
17 yıl
Yüzbaşı

quote:

Orjinalden alıntı: SiR MaNiaC

viewleri kullan kardeş

ordan komplike sorgu cümleleri hazırlıyabilir ve test tedebilirsin.


view derken? :S biraz daha ayrıntılı anlatabilir misin? şu an sadece sql kodlarını biliyorum ve veri tabanı yapıp sorgu yapmak istiyorum.. veri tabanına nereden başlamalıyız.. teşekkürler


Bu mesaja 1 cevap geldi.
S
17 yıl
Yüzbaşı

MS SQL kullanıyorsan management studio express indir

burdan database'in tablolarını viewlerini ve bilimum diğer özelliklerini kullanabilirsin.


Bu mesaja 1 cevap geldi.
İ
17 yıl
Binbaşı

quote:

sql i yeni öğreniyorum. ben şimdi Ms sql kodlarını biliyorum.. Sql server 2005 indirdim fakat kodları nereye yazıyoruz


Ems sqlserver management tool diye bir program daha vardı. Yönetim için çok güzel opsiyonları var . Eğer yeni başlıyorsanız tavsiye ederim.

http://sqlmanager.net/

adresinden indirebilirsiniz.





< Bu mesaj bu kişi tarafından değiştirildi irfanmatak -- 25 Ekim 2008; 11:06:02 >
Bu mesaja 1 cevap geldi.
3
17 yıl
Yüzbaşı

@sir maniac, aspci79

teşekkürler yrdımlarınız için



B
17 yıl
Yüzbaşı

quote:

Orjinalden alıntı: Tribesman

bir soruda benden dün baya uğraştım ama istediğim sonucu bir türlü alamadım ne istiyorum kısmını biraz açayım ... şlimdi konu ve mesaj olmak üzere 2 ayrı tablom var konular konu başlığı konu id ve eklenme tarihi mesaj ise konu id mesaj mesaj id eklenme tarihi olarak sıralanmakta benim istediğim en son mesaj atılan 5 başlığı seçtirmek mysql database i ile çalışıyorum şimdi bir kaç farklı yöntem denedim ama sonuçlar hep saçmaladı saçmalamaktan kastım 1 konuya 2 yeni mesaj atılmışsa 2 sinide göstermesi oysa benim istediğim tek konudaki en yeni mesaj

select * from mesaj order by eklenmetarihi limit 5 ile bir sıkıntı yaşamadan en son mesajları çektiriyorum ancak bir gruplama yapmıyor
select * from mesaj group by konu id order by eklenmetarihi limit 5
dediğimde ise gruplama sonucu en büyük mesaj id yi döndermiyo :S çözemedim daha
DISTINCT komutu ise farklı tarihten dolayı çuvallıyor :S tarih kısmını sorgudan çıkartıncada bidaha tarihleri çekmek için sorgu döndermem gerekiyor


mesaj_id yi sequence olarak düşünürsek;

select * from mesaj where mesaj_id in ( select max(mesaj_id) from mesaj group by konu_id) limit 5

her bir konunun son mesajının id sini alıp tekrar mesaj tablosundan sorguluyorum.
mysql hiç kullanmadım ama mysql için biraz modofiye edebilirsin. Sadece mantıgı anlaman için yazdım.


Bu mesaja 1 cevap geldi.
İ
17 yıl
Binbaşı

quote:

Orjinalden alıntı: Bulldog


quote:

Orjinalden alıntı: Tribesman

bir soruda benden dün baya uğraştım ama istediğim sonucu bir türlü alamadım ne istiyorum kısmını biraz açayım ... şlimdi konu ve mesaj olmak üzere 2 ayrı tablom var konular konu başlığı konu id ve eklenme tarihi mesaj ise konu id mesaj mesaj id eklenme tarihi olarak sıralanmakta benim istediğim en son mesaj atılan 5 başlığı seçtirmek mysql database i ile çalışıyorum şimdi bir kaç farklı yöntem denedim ama sonuçlar hep saçmaladı saçmalamaktan kastım 1 konuya 2 yeni mesaj atılmışsa 2 sinide göstermesi oysa benim istediğim tek konudaki en yeni mesaj

select * from mesaj order by eklenmetarihi limit 5 ile bir sıkıntı yaşamadan en son mesajları çektiriyorum ancak bir gruplama yapmıyor
select * from mesaj group by konu id order by eklenmetarihi limit 5
dediğimde ise gruplama sonucu en büyük mesaj id yi döndermiyo :S çözemedim daha
DISTINCT komutu ise farklı tarihten dolayı çuvallıyor :S tarih kısmını sorgudan çıkartıncada bidaha tarihleri çekmek için sorgu döndermem gerekiyor


mesaj_id yi sequence olarak düşünürsek;

select * from mesaj where mesaj_id in ( select max(mesaj_id) from mesaj group by konu_id) limit 5

her bir konunun son mesajının id sini alıp tekrar mesaj tablosundan sorguluyorum.
mysql hiç kullanmadım ama mysql için biraz modofiye edebilirsin. Sadece mantıgı anlaman için yazdım.




Evet mantık daha basit ve doğru, tabloları id alanlarına göre bağlıyorsanız doğal olarak son kaydedilmiş mesajlar ID değeri en yüksek kayıtlar olacaktır. Hatta şöylede basit şekilde alabilirsin.

select top 5 * from mesaj order by id desc.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.