Összetett lekérdezés
Sziasztok!
A problémám a következő:
Szeretnék készíteni egy dinamikus tabellát. Létrehoztam hozzá egy adatbázist, ami a következőképpen néz ki:
----------------
csapatok tábla
----------------
-id
-nev
----------------
----------------
eredmeny tábla
----------------
-eredmeny_id
-csapat_id
-meccs_id
-goal
-statusz
----------------
----------------
meccs tábla
----------------
meccs_id
csapat_id_1
csapat_id_2
----------------
A csapat tábla a bajnokságban résztvevő csapatokat tartalmazza, és az id-vel kapcsolódik az eredmény táblához, ahol van egy meccs azonosító (hogy melyik meccsen szerezte az adott csapat a gólokat), van egy gól tároló (goal) és van egy státusz, amihez 1 2 vagy 3 kerül aszerint hogy a csapat győzött x-elt vagy vesztett.
A meccs tábla pedig a meccs id alapján kapcsolódik az eredmény táblához és két csapatnevet tartalmaz, akik egymással játszottak.
Végeredményben szeretnék kiiratni egy táblázatot:
csapatnév | meccsek száma | győzelmek száma | döntetlenek száma | vereségek száma
rúgott gólok | kapott gólok | gólkülönbség | pont (SUM(győzelem*3)+SUM(döntetlen))
A cél az lenne, hogy ezeket az adatokat pont szerinti sorrendben kilistáztassam.
A lekérdezéseket külön külön meg tudom írni, helyes eredményt kapok.
pl.:
Kapott gól:
SELECT SUM( goal )
FROM eredmeny
INNER JOIN meccs ON eredmeny.m_id = meccs.m_id
AND (
meccs.cs_id = '1'
OR meccs.cs_id_2 = '1'
)
WHERE eredmeny.cs_id != '1'
Viszont ha külön lekérdezéseket futtatok, akkor nem tudom egy táblázatba rendezni az eredményeket pontok szerint. Vagy van erre valami megoldás? Egy összetett lekérdezés ennyi lekérdeznivaló esetén pedig szerintem nem megoldható. Vagy mégis? Mi lenne a jó megoldás?
A válaszokat előre is köszönöm.
■ A problémám a következő:
Szeretnék készíteni egy dinamikus tabellát. Létrehoztam hozzá egy adatbázist, ami a következőképpen néz ki:
----------------
csapatok tábla
----------------
-id
-nev
----------------
----------------
eredmeny tábla
----------------
-eredmeny_id
-csapat_id
-meccs_id
-goal
-statusz
----------------
----------------
meccs tábla
----------------
meccs_id
csapat_id_1
csapat_id_2
----------------
A csapat tábla a bajnokságban résztvevő csapatokat tartalmazza, és az id-vel kapcsolódik az eredmény táblához, ahol van egy meccs azonosító (hogy melyik meccsen szerezte az adott csapat a gólokat), van egy gól tároló (goal) és van egy státusz, amihez 1 2 vagy 3 kerül aszerint hogy a csapat győzött x-elt vagy vesztett.
A meccs tábla pedig a meccs id alapján kapcsolódik az eredmény táblához és két csapatnevet tartalmaz, akik egymással játszottak.
Végeredményben szeretnék kiiratni egy táblázatot:
csapatnév | meccsek száma | győzelmek száma | döntetlenek száma | vereségek száma
rúgott gólok | kapott gólok | gólkülönbség | pont (SUM(győzelem*3)+SUM(döntetlen))
A cél az lenne, hogy ezeket az adatokat pont szerinti sorrendben kilistáztassam.
A lekérdezéseket külön külön meg tudom írni, helyes eredményt kapok.
pl.:
Kapott gól:
SELECT SUM( goal )
FROM eredmeny
INNER JOIN meccs ON eredmeny.m_id = meccs.m_id
AND (
meccs.cs_id = '1'
OR meccs.cs_id_2 = '1'
)
WHERE eredmeny.cs_id != '1'
Viszont ha külön lekérdezéseket futtatok, akkor nem tudom egy táblázatba rendezni az eredményeket pontok szerint. Vagy van erre valami megoldás? Egy összetett lekérdezés ennyi lekérdeznivaló esetén pedig szerintem nem megoldható. Vagy mégis? Mi lenne a jó megoldás?
A válaszokat előre is köszönöm.
Nem értem
A nagyrésze megkapható egy lekérdezéssel:
Köszönöm szépen, sokat