Blaze
Üyeliği Durdurulmuş
Banlı Kullanıcı
-
Üyelik
10.06.2015
-
Yaş/Cinsiyet
32 / E
-
Meslek
PHP
-
Konum
Ankara
-
Ad Soyad
M** A**
-
Mesajlar
6
-
Beğeniler
0 / 0
-
Ticaret
2, (%0)
Merhaba arkadaşlar.
Şöyle bir tablom var.
Koşular
- tarih
- pist
- sehir
Ben bu tablodan tarihi,pisti,şehiri aynı olan verileri çekmek istiyorum fakat bir çok deneme yapmama rağmen sorunu 1 haftadır çözemedim.
Konuyu çözen arkadaşa 1 adet domain regleyeceğim.
-
Üyelik
07.09.2013
-
Yaş/Cinsiyet
36 / E
-
Meslek
Web Yazılım, Grafik Tasarım
-
Konum
KKTC
-
Ad Soyad
İ** A**
-
Mesajlar
356
-
Beğeniler
25 / 99
-
Ticaret
0, (%0)
SELECT * FROM tablo WHERE tarih='01.01.2015' AND pist='havaalani' AND sehir='adana'
daha sonra
while() kumutu ile tüm bu kriterdeki tüm verileri çekeceksin.
bu formülü kullanarak istediğin sonucu alabilirsin kardeşim.
Blaze
Üyeliği Durdurulmuş
Banlı Kullanıcı
-
Üyelik
10.06.2015
-
Yaş/Cinsiyet
32 / E
-
Meslek
PHP
-
Konum
Ankara
-
Ad Soyad
M** A**
-
Mesajlar
6
-
Beğeniler
0 / 0
-
Ticaret
2, (%0)
Hocam dediğimi yanlış anlamışsınız.
Örneğin;
Tabloda 5 kayıt var şu şekilde
Adana - 12.12.2015 - Çim
Adana - 12.12.2015 - Çim
Adana - 12.12.2015 - Çim
Ankara - 14.12.2015 - Kum
İstanbul - 19.12.2015 - Çim
Şehir,tarih,pisti olan değerleri bana vermesi gerekli;
Adana - 12.12.2015 - Çim
Adana - 12.12.2015 - Çim
Adana - 12.12.2015 - Çim
Gibi yani ben herhangi bir değer vermiyeceğim bu 3 değeri aynı olan verileri verecek bana.
-
Üyelik
07.09.2013
-
Yaş/Cinsiyet
36 / E
-
Meslek
Web Yazılım, Grafik Tasarım
-
Konum
KKTC
-
Ad Soyad
İ** A**
-
Mesajlar
356
-
Beğeniler
25 / 99
-
Ticaret
0, (%0)
Tamam işte hocam. 200 bin tane veri var ve içinde sadece 3 tane Adana - 12.12.2015 - Çim var diyelim. sen yukarıdaki kodu yazdığında sana 200 bin donuçtan sadece 3 tanesini verecektir. while ile sadece 3'ü çıkacak.
Blaze
Üyeliği Durdurulmuş
Banlı Kullanıcı
-
Üyelik
10.06.2015
-
Yaş/Cinsiyet
32 / E
-
Meslek
PHP
-
Konum
Ankara
-
Ad Soyad
M** A**
-
Mesajlar
6
-
Beğeniler
0 / 0
-
Ticaret
2, (%0)
Hocam sizin verdiğiniz kodda manuel olarak where ile değer veriyoruz. Ben diyorumki değeri biz vermiyeceğiz sadece şehir,pist,tarih bu değerleri aynı olan verileri vericek. Yani ben manuel olarak adana veya herhangi bir tarih belirtmiyeceğim 3 değeri aynı olan verileri kendisi otomatik bulacak. Sizin dediğiniz şekilde olsaydı çoktan çözmüştüm zaten.
Amacım ise aynı tarihte,aynı pistte, aynı şehirde koşmuş olan atları bulabilebilmek.
JexyR
Codeigniter / Symfony
Kullanıcı
-
Üyelik
27.04.2015
-
Yaş/Cinsiyet
40 / E
-
Meslek
Yazılım Müh.
-
Konum
Diğer
-
Ad Soyad
K** T**
-
Mesajlar
183
-
Beğeniler
11 / 62
-
Ticaret
0, (%0)
SELECT *
FROM aa t1
WHERE EXISTS
(
SELECT 1
FROM aa t2
WHERE t2.tarih = t1.tarih
LIMIT 1, 1
)
AND EXISTS
(
SELECT 1
FROM aa t2
WHERE t2.pist = t1.pist
LIMIT 1, 1
)
AND EXISTS
(
SELECT 1
FROM aa t2
WHERE t2.sehir = t1.sehir
LIMIT 1, 1
)
Kısaca :
SELECT *
FROM aa t1
WHERE EXISTS
(
SELECT 1
FROM aa t2
WHERE t2.tarih = t1.tarih AND t2.pist = t1.pist AND t2.sehir = t1.sehir
LIMIT 1, 1
)
Blaze
Üyeliği Durdurulmuş
Banlı Kullanıcı
-
Üyelik
10.06.2015
-
Yaş/Cinsiyet
32 / E
-
Meslek
PHP
-
Konum
Ankara
-
Ad Soyad
M** A**
-
Mesajlar
6
-
Beğeniler
0 / 0
-
Ticaret
2, (%0)
Hocam teşekkürler fakat verdiğiniz kod tüm atları veriyor ve tarihler vs farklı değerler farklı.
Benim amacım aynı tarih, aynı pistte, aynı şehir de koşan atları bulmak ve kimin kimi geçtiğini görmek.
-
Üyelik
03.01.2014
-
Yaş/Cinsiyet
32 / E
-
Meslek
eCommerce Developer
-
Konum
İstanbul Avrupa
-
Ad Soyad
K** T**
-
Mesajlar
41
-
Beğeniler
9 / 15
-
Ticaret
0, (%0)
SELECT * FROM tablo WHERE sehir IN ( SELECT sehir FROM tablo WHERE tarih IN ( SELECT tarih FROM tablo WHERE pist IN ( SELECT pist FROM tablo GROUP BY pist HAVING COUNT(*)>1)))
GROUP BY sehir HAVING COUNT( * ) >1
Sabahın bu saatinde saçmalamış olabilirim belki ama beyin fırtınası olabilir sana :)
Ek Olarak: yada şu şekilde dene
SELECT sehir,pist,tarih, count( * ) AS ayni
FROM tablo
GROUP BY sehir
HAVING ayni >1
ORDER BY ayni DESC
Mir
CodeMania
Kullanıcı
-
Üyelik
15.11.2011
-
Yaş/Cinsiyet
42 / E
-
Meslek
Yazılım mühendisi
-
Konum
İstanbul Avrupa
-
Ad Soyad
M** Y**
-
Mesajlar
95
-
Beğeniler
10 / 11
-
Ticaret
15, (%100)
verileriniz bunlar iken;
Adana - 12.12.2015 - Çim
Adana - 12.12.2015 - Çim
Adana - 12.12.2015 - Çim
Ankara - 14.12.2015 - Kum
İstanbul - 19.12.2015 - Çim
bu şekilde sorgulama yaptığınızda;
SELECT COUNT(tarih),tarih,pist,sehir
From tabloadiniz
GROUP BY tarih,pist,sehir
HAVING (COUNT(tarih)>1)
alacağınız sonuc
3 - Adana - 12.12.2015 - Çim
daha sonra bu nu tek satırda değilde 3 satırda görmek isterseniz joinleyerek 3 kayıt şeklinde de görebilirsiniz.
-
Üyelik
14.09.2012
-
Yaş/Cinsiyet
39 / E
-
Meslek
Yazılım geliştirme
-
Konum
Ankara
-
Ad Soyad
M** A**
-
Mesajlar
217
-
Beğeniler
55 / 48
-
Ticaret
0, (%0)
SELECT * FROM tablo WHERE tarih = pist AND pist = sehir
şeklinde denediniz mi?
--------------------
Pardon ben aynı satırda, aynı değerli 3 sütunlu verileri istiyorsunuz sandım :-) Silemiyorum maalesef :(
Murat Alabacak <http://muratalabacak.net>