![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 26.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Na kilku forach php-MySQL znalazłem ciekawe informacje na temat funkcji SUM(). Nie jestem Herkulesem MySQLowym a zaciekawił mnie problem przedstawiony przez Krzyśka (ZERO odpowiedzi na ten temat). Chodzi o przykład segregacji dobrze przedstaiony na przykładzie JEDNEJ tabeli rozgrywek piłkarsnich gdzie jedna drużyna ("aa" lub"bb"..) występuje w dwóch kolumnach (Gospodzrze a innym razem jako Goście). Problem polega na sprytnym wyłuskaniu informacji a dużynie i uporządkowaniu danych w postaci tabeli do WWW.
Przedstawiony problem wygląda następująco: =====cytat====================================== Mam w bazie danych "Mecze" dwie tabele: Rozgrywki Lp_Gosp_Goscie_Gole1_Gole2_Pkt1_Pkt2 1_aa_bb_3_1_2_0 2_aa_cc_5_2_2_0 3_cc_aa_1_4_0_2 4_dd_bb_1_1_1_1 5_ee_gg_6_4_2_0 6_gg_bb_1_5_0_2 8_bb_cc_9_3_2_0 Nazwy klubów pobierane są z bazy Kluby: Kluby Lp_Nazwa_IdKlubu 1_aa_1 2_cc_3 3_bb_2 4_dd_4 5_ee_5 6_ff_6 7_gg_7 Potrzebuję w wyniku tabelę na stronie WWW Nazwa klubu_Gole u siebie_Gole na wyjeździe_Punkty u siebie_Punkty na wyjeździe_Meczy u siebie_Meczy wyjazdowych aa_8_4_3_3_2_1 bb_9_7_2_3_1_3 cc_1_5_0_0_1_2 dd_1_NG_1_NG_1_0 ----> zamiast NG (nie grał) może być: 0 itd... Próbowałem czegoś takiego ale to jest złe bo sumuję tylko gospodarza LUB gościa $wynik = mysql_query ("SELECT Kluby.IdKlubu, Kluby.Nazwa, SUM(Rozgrywki.Gol1), SUM(Rozgrywki.Pkt1) FROM Rozgrywki, Kluby WHERE Kluby.IdKlubu = Rozgrywki.Gosp GROUP BY Kluby.Nazwa;") or die ("błąd w pytaniu"); Jak to załatwić prostym poleceniem? ![]() Krzysiek =====koniec cytatu====================================== Pozdrawiam |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
A dlaczego tak bardzo ważne jest by było to jedno polecenie? Na moje oko nie da się tego zrobić jednym zapytaniem bez jakiś strasznych wygibasów (nie konieniecznie tymczasowa tabela) i myślę, że lepiej (też dla wydajności ale trzeba by to było przetesteować) by było pozostać przy dwóch.
EDIT: A jednak.. przyszło mi do głowy coś takiego (nie sprawdzałem):
EDIT2: To jest temat na dział bazy danych a nie php. Ten post edytował mariuszn3 6.08.2006, 20:11:23 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 26.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki - myśl jest przednia ale muszę nad tym popracować bo ciągle wywala mi błąd i coś nie mogę się dopatrzeć gdzie...
Dzięki również za przypomnienie o innym dziale forum. Dam tam również ten temat może znajdzie się inne rozwiązanie (choć to wygląda dobrze ale wymaga doszlifowania z mojej strony).... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Poprawiłem jeden drobny błąd.. który na pewno wywalał mysqla.. więc na pewno teraz jest trochę lepiej
![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Przenosze. na przyszlosc prosze nie duplikowac tematow
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 12:37 |