webForumDet fria alternativet

Left Join

Databaser & SQLur Databashanterare & SQL

7 svar · 206 visningar · startad av kristoffer

Medlem sedan juni 20001 257 inlägg
Frågan#1

Jag har en tabell med personer och en tabell med sporter. Till varje sport kan en eller flera personer vara funktionärer. Varje person kan också vara funktionär till en eller flera sporter. Jag har därför en tabell med ett många-till-många-förhållande också.

Jag vill plocka ut alla personer och markera de som är funktionärer till den angivna sporten.

Med nedanstående fråga får jag bara poster när det existerar funktionärer till sporten (i detta fall sporten med intId = 29).

SELECT *, IIF(pls.intId_spt IS NULL, '', ' selected') AS strSelected FROM tblPerson_per AS per LEFT OUTER JOIN tblPersonLinktblSport_pls AS pls ON (per.intId = pls.intId_per AND pls.intId_spt = 29) ORDER BY strName

Vad göra? Jag använder Access.

Medlem sedan dec. 200012 464 inlägg
#2
SELECT *, 
IIF(pls.intId_spt IS NULL, '', ' selected') AS strSelected 
FROM tblPerson_per AS per RIGHT OUTER JOIN tblPersonLinktblSport_pls AS pls 
ON (per.intId = pls.intId_per AND pls.intId_spt = 29) 
ORDER BY strName
Medlem sedan juni 20001 257 inlägg
#3

Nej. Det går inte. Jag vill ha alla personer, dvs alla poster i den vänstra tabellen. Men LEFT JOIN ger mig bara poster då det existerar poster i den högra.

Medlem sedan dec. 200012 464 inlägg
#4

Nu när jag läser igen så tycker jag att din första fråga borde fungera.

Medlem sedan juni 20001 257 inlägg
#5

Men, öh. Jaha, nu vet jag inte vad jag skall göra.

Medlem sedan juni 20001 257 inlägg
#6

Hm. Nu ser jag att frågan är rätt. När jag ställer den i query analyzer får returnerar den poster. Men när jag kör nedanstående asp-kod blir det EOF. Va fasen??

Set objRS = Server.CreateObject("ADOdb.Recordset")
strSQL = "SELECT per.intId, per.strName, IIF(pls.intId_spt IS NULL, '', ' selected') AS strSelected FROM tblPerson_per AS per LEFT OUTER JOIN tblPersonLinktblSport_pls AS pls ON (per.intId = pls.intId_per AND pls.intId_spt = 6) "
objRS.Open strSQL, strConn, 0, 1, &H0001
While Not objRS.EOF
 Response.Write "<option value=""" & objRS("intId") & """" & objRS("strSelected") & ">" & objRS("strName") & "</option>"
 objRS.MoveNext
Wend
objRS.Close
Set objRS = Nothing
Medlem sedan juni 20001 257 inlägg
#7

Eftersom jag nu kommit fram till att frågan har med ASP att göra ställer jag den där. Någon kan jag avsluta den här tråden.

Medlem sedan dec. 200012 464 inlägg
#8

Tråden stängs enligt önsksemål. Diskussionen fortsätter i denna tråd

http://www.webforum.nu/showthread.php?s=&threadid=40889

137 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)