[]
Subselect / İçiçe Select (ya da her neyse)
arkadaşlar, günlerdir harika yardımlarınız oldu teşekkür ederim. baya şey öğrendim diye düşünüyorum.
şimdi mysql'de, select komutuyla tablo getiriyorum karşıma. örnek vereyim hemen;
yeniskorlar isimli tablom var ve bu sütunda maçlar yer alıyor. yani aynı takım birden çok yer alıyor, yüzlerce maç var.
takimlar | attigi | yedigi
arsenal.....2........1
united......0........0
barcelona...4........1
manisaspor..0........7
arsenal.....4........2
ve ben mysql'de komut girerek veri çektiriyorum mesela;
select takimlar,COUNT(*) as Üst FROM yeniskorlar where attigi+yedigi>2 GROUP BY takimlar ORDER BY COUNT(*) DESC
şeklinde. ve bu bana şöyle iki tablo veriyor gruplanmış şekilde
takimlar | Üst
arsenal.....7
manchester..7
barcelona...6
manisaspor..2
ben istiyorum ki, bu tablonun yanına bir sütun daha ekleyip,
takimlar | üst | oynadigi_mac
yapayım, yani aynı select komutuyla bir tane de oynadigi_mac sütunu ekleyip aynı ekranda 3'ünü birden görebileyim gruplanmış şekilde.
ki sadece oynadigi_mac'lari getirtmek için ihtiyacım olan formül:
SELECT COUNT(*) FROM yeniskorlar GROUP BY takimlar
oluyor.
ancak işte, hem üstü, hem oynadıkları maçları aynı select komutunda kullanamıyorum. nasıl yapabilirim acaba? nette iç içe select, subselect, subquery ile ilgili bir sürü şey arattırdım ancak hiçbirinde başarılı olamadım.
eğer bu verdiğim bilgiler yeterli değilse söylerseniz daha fazla şey yazabilirim.
şimdi mysql'de, select komutuyla tablo getiriyorum karşıma. örnek vereyim hemen;
yeniskorlar isimli tablom var ve bu sütunda maçlar yer alıyor. yani aynı takım birden çok yer alıyor, yüzlerce maç var.
takimlar | attigi | yedigi
arsenal.....2........1
united......0........0
barcelona...4........1
manisaspor..0........7
arsenal.....4........2
ve ben mysql'de komut girerek veri çektiriyorum mesela;
select takimlar,COUNT(*) as Üst FROM yeniskorlar where attigi+yedigi>2 GROUP BY takimlar ORDER BY COUNT(*) DESC
şeklinde. ve bu bana şöyle iki tablo veriyor gruplanmış şekilde
takimlar | Üst
arsenal.....7
manchester..7
barcelona...6
manisaspor..2
ben istiyorum ki, bu tablonun yanına bir sütun daha ekleyip,
takimlar | üst | oynadigi_mac
yapayım, yani aynı select komutuyla bir tane de oynadigi_mac sütunu ekleyip aynı ekranda 3'ünü birden görebileyim gruplanmış şekilde.
ki sadece oynadigi_mac'lari getirtmek için ihtiyacım olan formül:
SELECT COUNT(*) FROM yeniskorlar GROUP BY takimlar
oluyor.
ancak işte, hem üstü, hem oynadıkları maçları aynı select komutunda kullanamıyorum. nasıl yapabilirim acaba? nette iç içe select, subselect, subquery ile ilgili bir sürü şey arattırdım ancak hiçbirinde başarılı olamadım.
eğer bu verdiğim bilgiler yeterli değilse söylerseniz daha fazla şey yazabilirim.
Select COUNT(*),(SELECT a2.takimlar from yeniskorlar a2) as Macci
from yeniskorlar a1 where a1.attigi>a1.yedigi GROUP BY a1.takimlar
[Err] 1242 - Subquery returns more than 1 row
hatası alıyorum gerçekten kafayı yemek üzereyim dün geceden beri bakmadığım site kalmadı ama hiçbir yöntemle yapamadım bu söylediğimi. allah aşkına biri yardımcı olsun yav.
from yeniskorlar a1 where a1.attigi>a1.yedigi GROUP BY a1.takimlar
[Err] 1242 - Subquery returns more than 1 row
hatası alıyorum gerçekten kafayı yemek üzereyim dün geceden beri bakmadığım site kalmadı ama hiçbir yöntemle yapamadım bu söylediğimi. allah aşkına biri yardımcı olsun yav.
- tchuck (10.12.11 10:33:07)
Select takimlar, COUNT(*),(SELECT COUNT(*) FROM yeniskorlar as yeniskorlar2 WHERE yeniskorlar.takimlar = yeniskorlar2.takimlar) as total
from yeniskorlar where attigi>yedigi GROUP BY takimlar
sadece where ekliceksin iç tarafa. verdiği uyarıda olduğu gibi içte 1 den fazla satır döndüremez.
from yeniskorlar where attigi>yedigi GROUP BY takimlar
sadece where ekliceksin iç tarafa. verdiği uyarıda olduğu gibi içte 1 den fazla satır döndüremez.
- emrag (10.12.11 10:48:06)
yav ayıp olmazsa bir şey daha sorucam. peki mesela, aynı bu kodda bir sütunda da yüzdeleri yazmaya çalışsam. mesela üst/total diyeyim o sütuna. işte maçların %90'ı üst gelmiş o takımda, diğerinde %88 falan filan diye sıralasa bu şekilde.
buna nasıl bir kod kullansam, zerre aklıma gelmedi zerre.
buna nasıl bir kod kullansam, zerre aklıma gelmedi zerre.
- tchuck (10.12.11 14:12:52)
1