webForumDet fria alternativet

MySQL satser igen...

4 svar · 204 visningar · startad av mikael_a

mikael_aMedlem sedan mars 2000502 inlägg
#1

Hej,

jag har följande tabeller:

Gren
------
Gren_Id
Namn

Medlem
---------
Medlem_Id
Fnamn
Enamn

Resultat
----------
Resultat_Id
Tid

Resultat_Gren
------------------
Resultat_Id
Gren_Id

Tävling
---------
Tävling_Id
Namn_Tävling

Jag försöker få min sql sträng att fungera, det jag vill ha utfört är
att skapa en fråga som hämtar ut en persons 5 bästa reslutat ur alla tävlingar sorterat efter bästa reslutat.

Det är designen av databasen, samt MySQL frågan/strängen jag inte får ihop, jag har gjort ovanstående databasdesign, men den går säkert att göra bättre? hur hade ni gjort detta?

jag har testat med:


SELECT fnamn AS 'Förnamn', enamn AS 'Efternamn', namn AS 'Gren', Tid AS 'Resultat'
FROM `Medlem` , `Gren` , `Medlem_Gren` , `Resultat` , `Resultat_Gren` 
WHERE fnamn = 'Mikael' AND Medlem.Medlem_Id = Medlem_Gren.Medlem_Id AND Gren.Gren_Id = Medlem_Gren.Gren_Id
AND Resultat.Resultat_Id = Resultat_Gren.Resultat_Id
ORDER BY Resultat_Id LIMIT 0 , 5

den fungerar dock inte...


SELECT fnamn AS 'Förnamn', enamn AS 'Efternamn', namn AS 'Gren', Tid AS 'Resultat'
FROM `Medlem` , `Gren` , `Medlem_Gren` , `Resultat` 
WHERE fnamn = 'Mikael' AND Medlem.Medlem_Id = Medlem_Gren.Medlem_Id AND Gren.Gren_Id = Medlem_Gren.Gren_Id
ORDER BY Resultat_Id LIMIT 0 , 5

visar rätt person och gren, men tar bara de 5 första ifrån resultat och visar dem... får inte kopplingen Resultat_Gren att fungera i denna...

en bit på väg i alla fall... :)

/Nybörjare, som försöker att lära sig MYSQL och PHP

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Tabellen resultat verkar onödig tycker jag. Du skulle kunna lagra tid i resultat_gren tabellen där du också behöver lägga till medlem_id och tävling_id

mikael_aMedlem sedan mars 2000502 inlägg
#3

ok, skall prova... men hur kommer då sql satsen att bli? alltså hur man får ut det önskade resultatet jag vill ha?

mikael_aMedlem sedan mars 2000502 inlägg
#4

nedanstående sql rad fungerar inte... resultatet blir inte som jag vill...


SELECT fnamn, enamn, namn, tävling_namn, tid
FROM `Medlem` , `Gren` , `Tävling` , `Resultat`, `Medlem_Gren` 
WHERE fnamn = 'Mikael' AND Medlem.Medlem_Id = Medlem_Gren.Medlem_Id AND Gren.Gren_Id = Medlem_Gren.Gren_Id
ORDER BY Resultat_Id LIMIT 0 , 5

resultatet blir:

fnamn enamn namn tävling_namn tid
------- -------- ------- ----------------- ----
Mikael Andersson Stavhopp Olympiska Spelen 1.00
Mikael Andersson Stavhopp Sverige Mästerskap 1.00
Mikael Andersson Stavhopp Världs Mästerskap 1.00
Mikael Andersson Stavhopp Världs Mästerskap 2.00
Mikael Andersson Stavhopp Olympiska Spelen 2.00

tiden 1.00 och 2.00 finns bara 1 gång i tabellen.. fast den visar det 2 gånger...

mikael_aMedlem sedan mars 2000502 inlägg
#5

har löst det... tack

Genererad på 379 ms · cache AV · v20260730165559-full.f96bc7eb