Jednoduchá evidence šachových zápasů
Byl jsem požádán o sestavení jednoho SQL dotazu, který by vypisoval některé základní statistiky.
CREATE TABLE teamy( id INTEGER AUTO_INCREMENT, nazev VARCHAR(64) NOT NULL, liga TINYINT, PRIMARY KEY (id) ) ENGINE = innodb; CREATE TABLE zapasy ( id INTEGER AUTO_INCREMENT, datumzapasu DATETIME NOT NULL, liga TINYINT, kolo TINYINT, teama INTEGER NOT NULL, teamb INTEGER NOT NULL, bodya TINYINT DEFAULT 0, bodyb TINYINT DEFAULT 0, PRIMARY KEY (id), FOREIGN KEY (teama) REFERENCES teamy(id), FOREIGN KEY (teamb) REFERENCES teamy(id) ) ENGINE = innodb;
A teď některé dotazy:
Obligátní SELECT * FROM teamy
1 | TH Junior B. Bystrica "B" | 4 |
2 | SK Veža CVC B. Bystrica "B" | 4 |
3 | SK Slovan Hrnc. Žaluzany | 4 |
4 | SK Vinica | 4 |
5 | SK Garde CVC Detva | 4 |
6 | PSK B. Bystrica "B" | 4 |
7 | SO Mestské lesy Kremnica | 4 |
8 | Slovan Sliač | 4 |
9 | SK Bučina Zvolen | 4 |
10 | SO CVC Brezno | 4 |
Obligátní SELECT * FROM zapasy
ID | Datum | Liga | Kolo | Team A | Team B | Body A | Body B |
---|---|---|---|---|---|---|---|
1 | 2006-10-29 14:30:00 | 4 | 1 | 1 | 2 | 5 | 3 |
3 | 2006-10-08 09:00:00 | 4 | 1 | 3 | 1 | 0 | 0 |
4 | 2006-10-08 09:00:00 | 4 | 1 | 2 | 7 | 0 | 0 |
5 | 2006-10-08 09:00:00 | 4 | 1 | 4 | 8 | 0 | 0 |
6 | 2006-10-08 09:00:00 | 4 | 1 | 5 | 9 | 0 | 0 |
7 | 2006-10-08 09:00:00 | 4 | 1 | 6 | 10 | 0 | 0 |
8 | 2006-11-05 09:00:00 | 4 | 2 | 1 | 10 | 0 | 0 |
9 | 2006-11-05 09:00:00 | 4 | 2 | 9 | 6 | 0 | 0 |
10 | 2006-11-05 09:00:00 | 4 | 2 | 8 | 5 | 0 | 0 |
11 | 2006-11-05 09:00:00 | 4 | 2 | 7 | 4 | 0 | 0 |
12 | 2006-11-05 09:00:00 | 4 | 2 | 3 | 2 | 0 | 0 |
13 | 2006-11-19 09:00:00 | 4 | 3 | 2 | 1 | 0 | 0 |
14 | 2006-11-19 09:00:00 | 4 | 3 | 4 | 3 | 0 | 0 |
15 | 2006-11-19 09:00:00 | 4 | 3 | 5 | 7 | 0 | 0 |
16 | 2006-11-19 09:00:00 | 4 | 3 | 6 | 8 | 0 | 0 |
17 | 2006-11-19 09:00:00 | 4 | 3 | 10 | 9 | 0 | 0 |
18 | 2006-12-10 09:00:00 | 4 | 4 | 1 | 9 | 0 | 0 |
19 | 2006-12-10 09:00:00 | 4 | 4 | 8 | 10 | 0 | 0 |
20 | 2006-12-10 09:00:00 | 4 | 4 | 7 | 6 | 0 | 0 |
21 | 2006-12-10 09:00:00 | 4 | 4 | 3 | 5 | 0 | 0 |
22 | 2006-12-10 09:00:00 | 4 | 4 | 2 | 4 | 0 | 0 |
23 | 2007-01-21 09:00:00 | 4 | 5 | 4 | 1 | 0 | 0 |
24 | 2007-01-21 09:00:00 | 4 | 5 | 5 | 2 | 0 | 0 |
25 | 2007-01-21 09:00:00 | 4 | 5 | 6 | 3 | 0 | 0 |
26 | 2007-01-21 09:00:00 | 4 | 5 | 10 | 7 | 0 | 0 |
27 | 2007-01-21 09:00:00 | 4 | 5 | 9 | 8 | 0 | 0 |
28 | 2007-02-11 09:00:00 | 4 | 6 | 1 | 8 | 0 | 0 |
29 | 2007-02-11 09:00:00 | 4 | 6 | 7 | 9 | 0 | 0 |
30 | 2007-02-11 09:00:00 | 4 | 6 | 3 | 10 | 0 | 0 |
31 | 2007-02-11 09:00:00 | 4 | 6 | 2 | 6 | 0 | 0 |
32 | 2007-02-11 09:00:00 | 4 | 6 | 4 | 5 | 0 | 0 |
33 | 2007-02-25 09:00:00 | 4 | 7 | 5 | 1 | 0 | 0 |
34 | 2007-02-25 09:00:00 | 4 | 7 | 6 | 4 | 0 | 0 |
35 | 2007-02-25 09:00:00 | 4 | 7 | 10 | 2 | 0 | 0 |
36 | 2007-02-25 09:00:00 | 4 | 7 | 9 | 3 | 0 | 0 |
37 | 2007-02-25 09:00:00 | 4 | 7 | 8 | 7 | 0 | 0 |
38 | 2007-03-11 09:00:00 | 4 | 8 | 1 | 7 | 0 | 0 |
39 | 2007-03-11 09:00:00 | 4 | 8 | 3 | 8 | 0 | 0 |
40 | 2007-03-11 09:00:00 | 4 | 8 | 2 | 9 | 0 | 0 |
41 | 2007-03-11 09:00:00 | 4 | 8 | 4 | 10 | 0 | 0 |
42 | 2007-03-11 09:00:00 | 4 | 8 | 5 | 6 | 0 | 0 |
43 | 2007-04-01 09:00:00 | 4 | 9 | 6 | 1 | 0 | 0 |
44 | 2007-04-01 09:00:00 | 4 | 9 | 10 | 5 | 0 | 0 |
45 | 2007-04-01 09:00:00 | 4 | 9 | 9 | 4 | 0 | 0 |
46 | 2007-04-01 09:00:00 | 4 | 9 | 8 | 2 | 0 | 0 |
47 | 2007-04-01 09:00:00 | 4 | 9 | 7 | 3 | 0 | 0 |
Ošklivý a nicneříkající výstup že? Lépe bu bylo, kdybychom viděli např. seznam všech zápasů z roku 2006 čtvrté ligy. Vedle jména teamu bude i počet bodů dosažený v zápase.
SELECT ta.nazev AS nazeva, z.bodya, tb.nazev AS nazevb, z.bodyb FROM zapasy AS z INNER JOIN teamy AS ta ON z.teama = ta.id INNER JOIN teamy AS tb ON z.teamb = tb.id WHERE z.liga = 4 AND YEAR(z.datumzapasu) = '2006';
Team A | Body | Team B | Body |
---|---|---|---|
TH Junior B. Bystrica "B" | 5 | SK Veža CVC B. Bystrica "B" | 3 |
TH Junior B. Bystrica "B" | 0 | SO CVC Brezno | 0 |
TH Junior B. Bystrica "B" | 0 | SK Bučina Zvolen | 0 |
SK Veža CVC B. Bystrica "B" | 0 | SO Mestské lesy Kremnica | 0 |
SK Veža CVC B. Bystrica "B" | 0 | TH Junior B. Bystrica "B" | 0 |
SK Veža CVC B. Bystrica "B" | 0 | SK Vinica | 0 |
SK Slovan Hrnc. Žaluzany | 0 | TH Junior B. Bystrica "B" | 0 |
SK Slovan Hrnc. Žaluzany | 0 | SK Veža CVC B. Bystrica "B" | 0 |
SK Slovan Hrnc. Žaluzany | 0 | SK Garde CVC Detva | 0 |
SK Vinica | 0 | Slovan Sliač | 0 |
SK Vinica | 0 | SK Slovan Hrnc. Žaluzany | 0 |
SK Garde CVC Detva | 0 | SK Bučina Zvolen | 0 |
SK Garde CVC Detva | 0 | SO Mestské lesy Kremnica | 0 |
PSK B. Bystrica "B" | 0 | SO CVC Brezno | 0 |
PSK B. Bystrica "B" | 0 | Slovan Sliač | 0 |
SO Mestské lesy Kremnica | 0 | SK Vinica | 0 |
SO Mestské lesy Kremnica | 0 | PSK B. Bystrica "B" | 0 |
Slovan Sliač | 0 | SK Garde CVC Detva | 0 |
Slovan Sliač | 0 | SO CVC Brezno | 0 |
SK Bučina Zvolen | 0 | PSK B. Bystrica "B" | 0 |
SO CVC Brezno | 0 | SK Bučina Zvolen | 0 |