Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
[mysql]Tabela sportowa - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: [mysql]Tabela sportowa (/thread-mysql-tabela-sportowa)



[mysql]Tabela sportowa - Stef@n - 29-12-2008

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


RE: [mysql]Tabela sportowa - kajzur - 29-12-2008

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


RE: [mysql]Tabela sportowa - Stef@n - 29-12-2008

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



RE: [mysql]Tabela sportowa - BlueMan - 02-01-2009

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... .