SannyWMedlem sedan jan. 2003438 inlägg Hej!
Får inte rätt på joins, försöker lägga till att id byts ut mot namn.
Har nedanstående kod:
SELECT t.t_name, m.m_datum, m.m_matchnr, m.m_hometeam, m.m_awayteam, "&_
m.m_homegoals, m.m_awaygoals, m.m_ot, l.l_season, l.l_name, m.m_omg "&_
FROM (tbl_league as l "&_
"INNER JOIN tbl_team as t ON l.l_teamID = t.t_teamID) " &_
"INNER JOIN tbl_matches as m ON l.l_leagueID = m.m_leagueID " &_
"WHERE t.t_name = '"& strM &"' AND l.l_comp = '"& strC &"' "&_
" AND l.l_season = '"& strSeason &"' "&_
" ORDER BY m.m_leagueID, m.m_omg, m.m_datum, m.m_matchnr"
Försöker bygga till enligt nedanstående kod, men fattar inte riktigt hur och från vilket håll jag kan få in ytterligare en join.
" from"&_
" lag"&_
" left join tbl_matches "&_
" on t.ID = g.m_hometeam or t.ID = g.m_awayteam"&_
" group by"&_
" t.ID,t.lagNamn "&_
Hoppas någon förstår vad jag menar, tack på förhand.
@ndersMedlem sedan juni 200032 969 inlägg SannyWMedlem sedan jan. 2003438 inlägg Okey, sorry.
Tack för ditt svar @nders, hoppas detta är lite mer utförligt och överskådligt.
- Har precis gått över till att använda mysql som databas, MySQL 4.1-serien (loopia).
- Befintlig SQL-fråga är enligt ovan, den fungerar men lagnamnen kommer fram som nummer då jag inte får rätt på länkningen t ex mellan tbl_matches.m_hometeam och tbl_lag.ID, som sedan skall skrivas ut som tbl_lag.lagNamn
- Får inget felmeddelande, bara ett dåligt resultat.
- För att förklara min WHERE sats en aning så hämtas viss information med hjälp av Querystring som t ex default.asp?m=herrar&s=spelprogram&c=serie&y=2005/2006
Vilket då blir:
m=herrar hämtar från tbl_team.t_name (sektionsnamnet)
c=serie hämtar från tbl_league.l_comp (typ av tävling)
y=2005/2006 hämtar från tbl_league.l_season (aktuell säsong)
- Har fyra tabeller:
tbl_lag (här finns olika föreningsnamn)
.ID
.lagNamn
tbl_league
.l_leagueID
.l_teamID
.l_comp
.l_name
.l_season
tbl_matches
.ID
.m_leagueID
.m_datum
.m_omg
.m_hometeam
.m_awayteam
.m_homegoals
.m_awaygoals
.m_ot
tbl_team (här finns de olika lagen inom föreningen)
.t_teamID
.t_name
.t_sektion
- Förväntat resultat, något i denna stilen, vilket fungerar med den första koden. Men nu presenteras lagnamnen med en siffra istället.
2006-01-15 13:00 IBK Dalen - Södertälje IBK 4-4 SD
typ:
2006-01-15 13:00 25 - 3 4-4 SD
@ndersMedlem sedan juni 200032 969 inlägg Det jag eftersökte var framförallt dbms, och en fin SQL-fråga. Släng bort allt junk från ASP / andra scriptspråk, så slipper man börja gråta när man försöker skaffa en översikt. =)
SannyWMedlem sedan jan. 2003438 inlägg Då gör vi ett försök till, hoppas jag fått bort allt junk.
DRIVER={MySQL ODBC 3.51 Driver}
arrRecords = GetRows("SELECT t.t_name, m.m_datum, m.m_matchnr, m.m_hometeam, m.m_awayteam, m.m_homegoals, m.m_awaygoals, m.m_ot, l.l_season, l.l_name, m.m_omg
FROM (tbl_league as l
INNER JOIN tbl_team as t ON l.l_teamID = t.t_teamID)
INNER JOIN tbl_matches as m ON l.l_leagueID = m.m_leagueID
ORDER BY m.m_leagueID, m.m_omg, m.m_datum, m.m_matchnr"
SannyWMedlem sedan jan. 2003438 inlägg Blir inte klok på detta, nu har jag hamnat på sidorspår känns det som och försöker få in en replace. Nu skiftar den ut id mot Lagnamn, men den skriv ut dubbelrader och då blir t ex hometeam rätt medan awayteam blir fel.
typ:
5 - LAGNAMN(10)
LAGNAMN(5) - 10
Vilket då skulle blivit:
LAGNAMN(5) - LAGNAMN(10)
arrRecords = GetRows("SELECT
t.t_name,
m.m_datum,
m.m_matchnr,
m.m_hometeam,
m.m_awayteam,
m.m_homegoals,
m.m_awaygoals,
m.m_ot,
l.l_season,
l.l_name,
m.m_omg,
la.ID,
la.lagNamn FROM (tbl_league as l
INNER JOIN tbl_team as t ON l.l_teamID = t.t_teamID)
INNER JOIN tbl_matches as m ON l.l_leagueID = m.m_leagueID
INNER JOIN tbl_lag as la ON la.ID = m.m_hometeam or la.ID = m.m_awayteam
WHERE t.t_name = '"& strM &"' AND l.l_comp = '"& strC &"' AND l.l_season = '"& strSeason &"'
ORDER BY m.m_leagueID, m.m_omg, m.m_datum, m.m_matchnr")
'// Posthantering
If IsArray(arrRecords) then
For i = 0 To Ubound(arrRecords,2)
strName = arrRecords(0,i)
strDatum = arrRecords(1,i)
strMatchnr = arrRecords(2,i)
strHometeam = arrRecords(3,i)
strAwayteam = arrRecords(4,i)
strHomegoals = arrRecords(5,i)
strAwaygoals = arrRecords(6,i)
strOT = arrRecords(7,i)
strSeason = arrRecords(8,i)
strDivision = arrRecords(9,i)
strOmg = arrRecords(10,i)
strLaID = arrRecords(11,i)
strLaName = arrRecords(12,i)
strHometeam = Replace(strHometeam, strLaID, strLaName)
strAwayteam = Replace(strAwayteam, strLaID, strLaName)
SannyWMedlem sedan jan. 2003438 inlägg Hittade en lösning så här, men det var inte den vackraste jag har skådat. Känns som jag snurrar mer än vad jag behöver.
arrRecords = GetRows("SELECT t.t_name, m.m_datum, m.m_matchnr, m.m_hometeam, m.m_awayteam, m.m_homegoals, m.m_awaygoals, m.m_ot, l.l_season, l.l_name, m.m_omg, la1.ID, la1.lagNamn, la2.ID, la2.lagNamn FROM (tbl_league as l "&_
"INNER JOIN tbl_team as t ON l.l_teamID = t.t_teamID) " &_
"INNER JOIN tbl_matches as m ON l.l_leagueID = m.m_leagueID " &_
"INNER JOIN tbl_lag as la1 ON la1.ID = m.m_hometeam " &_
"INNER JOIN tbl_lag as la2 ON la2.ID = m.m_awayteam " &_
" WHERE t.t_name = '"& strM &"' AND l.l_comp = '"& strC &"' AND l.l_season = '"& strSeason &"' "&_
"ORDER BY m.m_leagueID, m.m_omg, m.m_datum, m.m_matchnr")
'// Posthantering
If IsArray(arrRecords) then
For i = 0 To Ubound(arrRecords,2)
strName = arrRecords(0,i)
strDatum = arrRecords(1,i)
strMatchnr = arrRecords(2,i)
strHometeam = arrRecords(3,i)
strAwayteam = arrRecords(4,i)
strHomegoals = arrRecords(5,i)
strAwaygoals = arrRecords(6,i)
strOT = arrRecords(7,i)
strSeason = arrRecords(8,i)
strDivision = arrRecords(9,i)
strOmg = arrRecords(10,i)
strLa1ID = arrRecords(11,i)
strLa1Namn = arrRecords(12,i)
strLa2ID = arrRecords(13,i)
strLa2Namn = arrRecords(14,i)
strHometeam = Replace(strHometeam, strLa1ID, strLa1Namn)
strAwayteam = Replace(strAwayteam, strLa2ID, strLa2Namn)
LarsGMedlem sedan dec. 200012 464 inlägg Du behöver två instanser av lagtabellen.
SELECT
t.t_name,
m.m_datum,
m.m_matchnr,
m.m_hometeam,
m.m_awayteam,
m.m_homegoals,
m.m_awaygoals,
m.m_ot,
l.l_season,
l.l_name,
l.l_seasone,
l.l_name,
m.m_omg,
la.ID,
la1.lagNamn ,
la2.lagNamn
FROM tbl_league as l
INNER JOIN tbl_team as t ON l.l_teamID = t.t_teamID
INNER JOIN tbl_matches as m ON l.l_leagueID = m.m_leagueID
INNER JOIN tbl_lag as la1 ON la1.ID = m.m_hometeam
INNER JOIN tbl_lag as la2 on la2.ID = m.m_awayteam
WHERE t.t_name = '"& strM &"' AND l.l_comp = '"& strC &"' AND l.l_season = '"& strSeason &"'
ORDER BY m.m_leagueID, m.m_omg, m.m_datum, m.m_matchnr
SannyWMedlem sedan jan. 2003438 inlägg Tack LarsG! Då vandrade jag på den rätta vägen...