icaaqMedlem sedan okt. 20005 273 inlägg jag håller på att lägga in massa innebandymatcher i ett dbms(mySQL) och jag undrar nu om detta är ett bra sätt.
jag har en tabell (t_lag) med alla lag:
LagID!LagNamn!osv!osv
---------------------
1!AIK!osv!osv
och sen har jag en tabell (t_matcher) med alla matcher och dylikt.
MatchID!Hemmalag!Bortalag!osv
Är det bättre att lägga in lagID istället LagNamn i tabellen med matcherna?
------------------
Icaaq, mannen med korven. (!)
[Redigerat av icaaq den 01 nov 2001]
LarsGMedlem sedan dec. 200012 464 inlägg Om du har behov av att kunna uppdatera lagNamn så skall du använda ett Lagid i Matchtabellen, annars går det på ett ut.
Om det är bra annars beror på vilken information du vill kunna plocka ut.
Vad har detta med subselect att göra?
------------------
essentitia preter non sans multiplicandum
icaaqMedlem sedan okt. 20005 273 inlägg
Vad har detta med subselect att göra?
Jag tänkte ställa fler frågor i det första inlägget, men då gör jag det nu istället.....
om jag kör med lagID i match tabellen då blir det ju en hel del selectsatser när jag ska visa alla matcherna i en serie....
jag har en tanke om hur det ska se ut men rätta mig om den är fel:
strSQL = "SELECT hemmalag, bortalag from t_matcher "&_
"WHERE serie = '"&strSerie&'"
Set ObjRS = ObjConn.Execute(strSQL)
If ObjRS.EOF Then
'inga matcher
Else
Do until ObjRS.EOF
strSQL2 = "SELECT LagNamn t_lag "&_
"WHERE LagID = "&ObjRS("hemmalag")&"
Set ObjRS2 = ObjConn.execute(strSQL2)
If ObjRS2.EOF Then
'nått blev fel
Else
'skriv ut hemmalagets info
End If
strSQL3 = "SELECT LagNamn t_lag "&_
"WHERE LagID = "&ObjRS("Bortalag")&"
Set ObjRS3 = ObjConn.execute(strSQL3)
If ObjRS3.EOF Then
'nått blev fel
Else
'skriv ut Bortalagets info
End If
ObjRS.Movenext
Loop
End If
är detta rätt tänkt eller går det att göra smidigare? :q
------------------
Icaaq, mannen med korven. (!)
[Redigerat av icaaq den 01 nov 2001]
LarsGMedlem sedan dec. 200012 464 inlägg Det går att göra så att du får ut all information i en fråga
SELECT h.lagNamn as hnamn,
h.x as hx,
h.y as hy,
b.lagnamn as bnamn,
b.x as bx,
b.y as by
from t_lag as h join t_matcher
on h.lagid = hemmalag join
t_lag as b on bortalag = b.lagid
where serie = 'Serie 4711'
red: syntaxfel i sql.
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 01 nov 2001]
icaaqMedlem sedan okt. 20005 273 inlägg Vet du att det går att göra så här i mySQL??
------------------
Icaaq, mannen med korven. (!)
LarsGMedlem sedan dec. 200012 464 inlägg Jag är ganska säker på att det fungerar även i Mysql.
------------------
essentitia preter non sans multiplicandum
icaaqMedlem sedan okt. 20005 273 inlägg nu har jag denna.
SELECT h.F_LAG_NAMN as hnamn,
b.F_LAG_NAMN as bnamn
from t_lag as h join t_match on h.f_lag_id = f_hemmalag
join t_lag as b on f_bortalag = b.lagid where f_serie_namn = 'haha'
men jag får
You have an error in your SQL syntax near 'on h.f_lag_id = f_hemmalag
join t_lag as b on f_bortalag = b.lagid where f_serie'
...jag fattar ju inget av detta så vad kan vara fel?
------------------
Icaaq, mannen med korven. som hejar på Bajen(!)
LarsGMedlem sedan dec. 200012 464 inlägg Något syntax-fel är det inte (inte enligt standard sql i alla fall).
Det beror nog mer på någon brist i Mysql. Om du testar med att kvalificera alla kolumnreferenser då
SELECT h.F_LAG_NAMN as hnamn,
b.F_LAG_NAMN as bnamn
from t_lag as h join t_match as t on h.f_lag_id = t.f_hemmalag
join t_lag as b on t.f_bortalag = b.lagid where t.f_serie_namn = 'haha'
------------------
essentitia preter non sans multiplicandum