Bu SQL kodu istediğin işlemi yapar:
SELECT DISTINCT uye, ip FROM log WHERE ip IN (SELECT ip FROM log GROUP BY ip HAVING count(*) > 1) ORDER BY ip ASC, uye ASC
Kendim yazdım ve denedim.
Beynim Durdu (Sql sorgusu)
12
●683
- 16-09-2016, 20:47:15Kimlik doğrulama veya yönetimden onay bekliyor.Bu kod sqli kısır döngüye soktu bende nedense.webkolog adlı üyeden alıntı: mesajı görüntüle
- 16-09-2016, 23:08:37Bende gayet hızlı çalışıyor nedense.asimus adlı üyeden alıntı: mesajı görüntüle
Çünkü bende sadece 10 kayıt vardı.
Şaka bir yana muhtemelen sende binlerce kayıt olduğu için kasma olayı oluyordur. WHERE ip IN (...) kısmında zaten performans yiyeceğinden kafamda soru işaretleri vardı. Her neyse şu şekilde bir dene:
SELECT ip, COUNT(DISTINCT uye) AS uye_sayisi, GROUP_CONCAT(DISTINCT uye) AS uyeler FROM log GROUP BY ip HAVING COUNT(DISTINCT uye) > 1 ORDER BY ip ASC, uye ASC
Bu sorguda uyeler adlı sütundan (sanal sütun) üye isimleri Ali,Veli,Deli gibi çıkabilir. Bunları PHP tarafında explode veya split ile parçalaya bilirsin.
Bu yapı biraz daha farklı ama daha iyisi yapılabilir mi emin değilim. Daha iyisini paylaşan olana kadar en iyisi bu diyelim.
Umarım sorununu çözmüştür, iyi çalışmalar. - 17-09-2016, 00:28:16Evet bu daha mantıklı ve güzel sonuç verdiwebkolog adlı üyeden alıntı: mesajı görüntüle
Çünkü bende sadece 10 kayıt vardı.
Şaka bir yana muhtemelen sende binlerce kayıt olduğu için kasma olayı oluyordur. WHERE ip IN (...) kısmında zaten performans yiyeceğinden kafamda soru işaretleri vardı. Her neyse şu şekilde bir dene: