Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
[mysql]Tabela sportowa
#1
Big Grin 
Witam,
Proszę was o pomoc. Próbuje jednym zapytaniem wyciągnąć z terminarza sportowego wszystkie wyniki które będzie tworzyć tabele rozgrywek.

Baza wygląda tak:
Kod:
CREATE TABLE `mecze` (
  `id` int(11) NOT NULL auto_increment,
  `druzyna_a` varchar(20) NOT NULL default '0',
  `druzyna_b` varchar(20) NOT NULL default '0',
  `g_a` int(11) NOT NULL default '0',
  `g_b` int(11) NOT NULL default '0',
  `p_a` int(11) NOT NULL default '0',
  `p_b` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=7 ;


INSERT INTO `mecze` VALUES (1, 'druzyna_1', 'druzyna_2', 7, 2, 3, 0);
INSERT INTO `mecze` VALUES (2, 'druzyna_3', 'druzyna_4', 5, 5, 1, 1);
INSERT INTO `mecze` VALUES (3, 'druzyna_1', 'druzyna_3', 6, 5, 2, 1);
INSERT INTO `mecze` VALUES (4, 'druzyna_2', 'druzyna_4', 3, 0, 3, 0);
INSERT INTO `mecze` VALUES (5, 'druzyna_1', 'druzyna_4', 5, 4, 3, 0);
INSERT INTO `mecze` VALUES (6, 'druzyna_2', 'druzyna_3', 4, 2, 3, 0);
kolumny: bramki strzelone w meczu przez Gospodarzy (g_a) i gosci (g_b), tak samo kolumny p_a i p_b to kolumny z punktami (czyli zwycięstwo, wygrana, remis).

Teraz mam dwa zapytania jedno robi tabele rozgrywek gdzie zlicza mecze rozgrywane w domu (GROUP BY druzyna_a) drugie zapytanie zlicza mecze rozegrane na wyjeździe (GROUP BY druzyna_b):
Zapytanie I - zlicza mecze w domu
Kod:
SELECT druzyna_a, COUNT(druzyna_a) AS mecze, SUM(p_a) AS punkty, SUM(g_a) AS strzelone, SUM(g_b) AS puszczone
FROM mecze GROUP BY druzyna_a ORDER BY punkty DESC

Zapytanie II - zlicza mecze na wyjeździe
Kod:
SELECT druzyna_b, COUNT(druzyna_b) AS mecze, SUM(p_b) AS punkty, SUM(g_b) AS strzelone, SUM(g_a) AS puszczone
FROM mecze GROUP BY druzyna_b ORDER BY punkty DESC

Teraz opisze mój problem potrzebuje aby te dwa zapytania tworzyły całość. Czyli tabele ze wszystkich meczów rozgrywanych w domu i na wyjeździe.

Proszę o pomoc w zrobieniu takiego zapytania!

POZDRAWIAM
Odpowiedz
#2
Możesz to zrobić tak, że jak dajesz mysql_query to nadaj mu i zapytaniu pierwszemu np. zmienną $pptab, i na drugą zmienną np. $drtb. Później wez sobie to w mysql_fetch_row i ubierz w jakąś tabelke.. Ale nie jestem pewien czy napewno o to Ci chodzi Wink
Odpowiedz
#3
Chodzi mi o to żeby ostateczne rozwiązanie wyglądało tak:
Kod:
Druzyna | Mecze | Punkty | Strzelone | Puszczone
druzyna_1 | 3 | 8 | 18 | 11
druzyna_2 | 3 | 6 | 9 | 9
druzyna_3 | 3 | 2 | 12 | 15
druzyna_4 | 3 | 1 | 10 | 12
Odpowiedz
#4
Kod:
SELECT druzyna_a, COUNT(druzyna_a) AS mecze, SUM(p_a) AS punkty, SUM(g_a) AS strzelone, SUM(g_b) AS puszczone
FROM mecze GROUP BY druzyna_a ORDER BY punkty DESC
UNION
SELECT druzyna_b, COUNT(druzyna_b) AS mecze, SUM(p_b) AS punkty, SUM(g_b) AS strzelone, SUM(g_a) AS puszczone
FROM mecze GROUP BY druzyna_b ORDER BY punkty DESC
http://dev.mysql.com/doc/refman/5.0/en/union.html

Ale ogólnie budowa tabeli i tych zapytań średnio mi się podoba. Mało elegancko to jest... .
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Jak sprawdzić czy adres www znajduje sie w bazie mysql? jarekcda 8 9,025 13-05-2017, 01:02
Ostatni post: miketodson255
  Optymalizacja MySQL-a tomek_00 1 3,928 01-09-2013, 13:31
Ostatni post: hieroshima
  [MySQL] Struktura bazy dla słownika msx83 2 3,926 24-08-2013, 16:26
Ostatni post: msx83
  Komunikacja PHP z MySQL na serwerze pawstrze 5 6,452 16-07-2013, 15:58
Ostatni post: Engine
  [MySQL] wyszukiwarka problem darlowiak 3 3,559 13-06-2013, 12:58
Ostatni post: darlowiak

Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl