ugrás a tartalomhoz

Archívum - Már 25, 2010 - Fórum téma

Összetett lekérdezés

gabeekex · 2010. Már. 25. (Cs), 14.13
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.
 

Süti ellenőrzése

Dzsijszi · 2010. Már. 25. (Cs), 12.55
Sziasztok!

Lenne egy olyan kérdésem, hogy készítek egy weboldalon egy regisztrációs rendszert, aminél, ha a felhasználó bejelöli a "Maradjon bejelentkezve" checkbox -ot akkor kap egy sütit. Legközelebb, amikor meglátogatja az oldalt, a rendszer ellenőrzi, hogy van-e ilyen sütije. Ha van megnézi az abban értékként megadott sorszámot és a sorszámnak megfelelő felhasználói fiókja irányítja a felhasználót. Naszóval, arra volnék kíváncsi, hogy miként ellenőrizhetném azt, hogy van-e ilyen sütije vagy sem.

A segítséget előre is köszönöm!
 

MySQL count hiba

abicska · 2010. Már. 25. (Cs), 03.34
Szevasztok Srácok!

Találtam egy hibát és nem értem, hogy mitől lehet. Kérlek, segítsetek rajtam!

Adott 5 tábla, melyek a következő lekérdezéssel vannak összekapcsolva:
SELECT hsps_wall.wall_id, hsps_users.users_vezeteknev, hsps_users.users_keresztnev, hsps_users.users_nick, hsps_wall.wall_text, COUNT(hsps_wall_comments.wall_comments_id) AS wall_comment, COUNT(hsps_wall_like.wall_like_id) AS wall_like, hsps_wall.wall_created
FROM hsps_wall
RIGHT JOIN hsps_relations ON hsps_relations.relations_to = hsps_wall.wall_user
LEFT JOIN hsps_users ON hsps_users.users_id = hsps_wall.wall_user
LEFT JOIN hsps_wall_comments ON hsps_wall_comments.wall_comments_wall = hsps_wall.wall_id
LEFT JOIN hsps_wall_like ON hsps_wall_like.wall_like_wall = hsps_wall.wall_id
WHERE hsps_relations.relations_from = 1 OR hsps_wall.wall_user = 1
GROUP BY hsps_wall.wall_id
ORDER BY hsps_wall.wall_created DESC
LIMIT 30
A probléma az, hogy a két COUNT oszlop hibás értékeket ad random módon. Van, amikor helyes az érték, van amikor duplája annak, aminek kellene lennie.
Akkor változik, ha beszúrok egy-egy sort a kommentek, vagy a like táblába.
Nem értem, hogy miért. Ha valaki tudna segíteni, azt megköszönném!

Ha nagyon nem érthető így, akkor adok DB elérést.

Köszönöm előre is!
Ábel