[]

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.

 
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.
  • 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.
  • 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.
  • tchuck  (10.12.11 14:12:52) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.