SQL Sorgusu İçin Yardımınız Gerekiyor.
-
Merhaba arkadaşlar.
Mesajlaşma sistemi yapmaktayım. Tablo tasarımım şu şekilde.
tblSohbetler tablosu
SOHBET_ID int primary key
GONDEREN_KULLANICI_ID int
GONDERILEN_KULLANICI_ID int
YAZAN_KULLANICI_ID int
MESAJ varchar(MAX)
GONDERIM_TARIH datetime
OKUNDU bittblKullanicilar tablosu
KULLANICI_ID int primary key
AD_SOYAD varchar(50)
KULLANICI_ADI varchar(50)
KULLANICI_SIFRE varchar(50)Örnek 1
KULLANICI_ID = 4
KULLANICI_ADI = ontedi
adlı kişiKULLANICI_ID = 2
KULLANICI_ADI = hakanadlı kişiye mesaj yolladığında tblSohbetler tablosunda şu şekilde kayıt edilmektedir.
tblSohbetler (Kayıt ekleme)
GONDEREN_KULLANICI_ID = 4
GONDERILEN_KULLANICI_ID = 2
YAZAN_KULLANICI_ID = 4Örnek 2
KULLANICI_ID = 2
KULLANICI_ADI = hakan
adlı kişiKULLANICI_ID = 4
KULLANICI_ADI = ontediadlı kişiye mesaj yolladığında tblSohbetler tablosunda şu şekilde kayıt edilmektedir.
tblSohbetler (Kayıt ekleme)
GONDEREN_KULLANICI_ID = 2
GONDERILEN_KULLANICI_ID = 4
YAZAN_KULLANICI_ID = 2Kişiler arasında geçen tüm mesajların sorgusunu şu şekilde yapmaktayım
SELECT
S.SOHBET_ID,
S.GONDEREN_KULLANICI_ID,
S.GONDERILEN_KULLANICI_ID,
S.YAZAN_KULLANICI_ID,
S.MESAJ,
S.GONDERIM_TARIH,
S.OKUNDU
FROM
tblSohbetler AS S
WHERE
S.GONDEREN_KULLANICI_ID IN(2, 4)
AND
S.GONDERILEN_KULLANICI_ID IN(4, 2)Asıl meseleyi anlatacam lakin gece bu saatlerde kafa biraz zor çalışıyor.
Mesela bu kişi başka kişilerle mesajlaştığında tablodaki kayıtlar

KULLANICI_ID = 4 olan kişi, 3 farklı kişi ile toplamda 12 tane mesajı bulunmaktadır. Benim yapmak istediğim oradaki 3 farklı kişinin sayısını bulmak.
Bir başka örnek. Diyelim ki KULLANICI_ID = 4 olan kişinin mesajlaştığı farklı kişiler sayısını nasıl bulurum
Not: Emeği geçenlere şimdiden teşekkürler. Anlatmak ciddi anlamda tıkandım diyebilirim.
-
bişey dikkatimi çekti YAZAN_KULLANICI_ID ne işe yarıyor?
istediğin sorgu şu sanırım ben de tam anlayamadım ama bi dene
SELECT count(DISTINCT GONDERILEN_KULLANICI_ID) as Saydir FROM tblSohbetler WHERE GONDEREN_KULLANICI_ID=ISTEDIGIN_ID group by GONDEREN_KULLANICI_ID
çekerken hedehodo("saydir") olarak kullanacaksın
pesimistzombie tarafından 30/Ara/14 00:58 tarihinde düzenlenmiştir -
YAZAN_KULLANICI_ID (Sohbete mesajı ekleyen kişi. Çünkü aynı tabloda karşılıklı mesajlaşma durumu mevcut.)
Sabah bir deneyecem, sağolasın.
-
pesimistzombie yazmış cevabı. DISTINCT kullanman yeter.
