[]
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ı.
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.
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?
ö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
)
Şö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