webForumDet fria alternativet

Left Join

7 svar · 206 visningar · startad av kristoffer

kristofferMedlem sedan juni 20001 266 inlägg
#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.

LarsGMedlem sedan dec. 200012 465 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
kristofferMedlem sedan juni 20001 266 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.

LarsGMedlem sedan dec. 200012 465 inlägg
#4

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

kristofferMedlem sedan juni 20001 266 inlägg
#5

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

kristofferMedlem sedan juni 20001 266 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
kristofferMedlem sedan juni 20001 266 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.

LarsGMedlem sedan dec. 200012 465 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

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