[]

Mysql Sorusu

2-3 gündür üstünde uğraşıyorum ama bi arpa boyu yol alamadım. Yeniyim, acemiyim bu işlerde ama deneme yanılmayla öğrenmeye çalışıyorum.

2 tane tablom var diyelim:

maclar_tablosu:

takimlar | skor| deplasmanevsahibi
arsenal----- 2-3----evsahibi
manchester-- 3-0----deplasman
göztepe----- 4-1----evsahibi
karsiyaka--- 2-4----evsahibi
besiktas---- 2-0----deplasman
stoke city-- 0-5----evsahibi
arsenal----- 4-2----deplasman
west brom--- 1-0----evsahibi

falan diye sıralanıyor. yani aynı takımın birden çok maçı yer alıyor anlayacağınız. ve skorlar yer alıyor burada. evsahibi/deplasman kodlarıyla da o maçı kazanıp kaybettiğini anlıyorum.

neyse, şimdi ikinci tablom da şöyle;

takimlar_tablosu:

takimlarid | takimlar | kazandigi | kaybettigi .......
1------------arsenal
2------------besiktas
3------------manchester
4------------juventus
5------------göztepe
6------------karsiyaka

şeklinde.

istiyorum ki, maç ekranındaki maçlarda istatistik çalışmaları yapıp Takimlar_tablosu'na aktarayım bunları. Ama nasıl yapacağımı bir türlü bulamadım. Yani, maçlar tablosunda arsenal 20 kez maç mı yapmış? 13 kez kazanmış, 7 kez kaybetmiş yazsın takimlar_tablosu'nda. Ya da 14 kez üst 6 kez alt bitmiş maçları yazsın.

Ama update ile bir türlü yapamadım bunu. Hem işlem yaptıramadım update ile hem de birinci satıra ne yazarsa tüm satırlara onu yazıyor. Ve grup şeklinde nasıl denkleştireceğimi bulamadım maçları.

 
önceki soruları da göz önüne alınıp genel bir öneri yazıyorum. cevap değil.

veritabanı tasarımı nasıl yapılır, temel olarak bir incele.

örneğin deplasmanevsahibi sütunu evsahibi, deplasman yerine; 0, 1 olabilir.
skor, 2-3 yerine, iki farklı sütunda attigi 2 ve yedigi 3 olabilir. tek başına duran sayılarla çalışmak daha kolaydır.

maclar tablosu şu şekilde olsaydı, çok rahat ederdin;

id --- takim_e --- takim_d --- gol_e --- gol_d
1 --- besiktas --- arsenal --- 1 --- 3
2 --- manchester --- goztepe --- 4 --- 1

böylelikle karşılıklı maçları da görebilirsin. bir adım ilerisini de düşünürsen, takim isimleri yerine takim id'lerini kullanabilirsin ve takim_e ve takim_d sütunlarına ayrı ayrı index özelliği verebilirsin.
  • turkay  (16.12.11 08:08:03) 
işte giderek daha pratik bişiler yapmaya çalışıyorum aslında ben de son aşama olarak hepsini rakamlarla açıklamayı düşünüyorum.

öyleyse merak ettiğim bir şeyi söyleyeyim: mesela takimlar tablosunda dediğim gibi tüm takımlarım ve onlara ait id'ler yer alıyor.

peki, maç tablosunda (malum binlerce maç var tek tek elle giremem) takım isimlerini otomatik olarak id olarak girebileceğim bir kod veya bir yöntem var mıdır?
  • calimdor  (16.12.11 08:24:27 ~ 08:28:53) 
PHP ile yazılmış örnekler bulabilirsin. Satır satır, tüm işlemleri halledebilir. Ya da doğrudan MySQL üzerinden de yapabilirsin. MySQL'in UPDATE için manual'ine bakarsan örnekler vardır orada (yorumlarda filan)).

Şöyle bir şey olabilir (yol göstersin diye yazıyorum, çalışıp, çalışmayacağından emin değilim);

UPDATE maclar
SET maclar.takimlar = ( //takimlar'ı id ile değiştireceğiz
SELECT takimlar_tablosu.takimlarid from takimlar_tablosu //takimlarid'yi alıyoruz
WHERE maclar.takimlar = takimlar_tablosu.takimlar //ayni takim ismine sahip iseler
)
WHERE EXIST //eğer aynı takım ismine sahip id yoksa, update etmiyoruz
(
SELECT takimlar_tablosu.takimlarid from takimlar_tablosu
WHERE maclar.takimlar = takimlar_tablosu.takimlar
)
  • turkay  (16.12.11 09:28:19 ~ 09:29:06) 
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.