@ndersMedlem sedan juni 200032 969 inlägg
det första man gör när en sql-fråga är felaktig är givetvis att skriva ut den till webbläsaren med response.write så man ser om den färdiga frågan är korrekt.
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
crisse6Medlem sedan dec. 20002 526 inlägg har gjort det, det står så här då:
SELECT I.IntresseID,I.IntresseNamn,M.MedlemsID FROM intressen as I left join medlemsIntressen as Mi on i.intresseid = mi.intresseid left join medlemmar as M on mi.medlemsid = m.id where m.id = 1
------------------
www.groda.net *kvack*, *kvack*
@ndersMedlem sedan juni 200032 969 inlägg precis ovan, när du skriver hur dina tabeller ser ut, har du skrivit att tabellen heter users. i sql-frågan kallar du tabellen för medlemmar. vilket gäller?
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
LarsGMedlem sedan dec. 200012 464 inlägg Kolumnen i medlemstabellen heter väl ID Nu används både ID och MedlemsID i frågan så om man byter till ID genomgående så
SELECT I.IntresseID,I.IntresseNamn,M.ID FROM intressen as I left join medlemsIntressen as Mi on i.intresseid = mi.intresseid left join medlemmar as M on mi.medlemsid = m.id where m.id = 1
------------------
essentitia preter non sans multiplicandum
crisse6Medlem sedan dec. 20002 526 inlägg får nu detta felmess:
Kompileringsfel i Microsoft VBScript error '800a03fd'
'Case' förväntas.
/groda/visa.asp, line 13
SELECT I.IntresseID,I.IntresseNamn,M.ID FROM intressen as I left join medlemsIntressen as Mi on i.intresseid = mi.intresseid left join medlemmar as M on mi.medlemsid = m.id where m.id = 1
line 13 är denna:
Den jag fick nu senast av dig LarsG
------------------
www.groda.net *kvack*, *kvack*
[Redigerat av crisse6 den 23 apr 2001]
LarsGMedlem sedan dec. 200012 464 inlägg Ojdå, jag menade
sql = "SELECT I.IntresseID,I.IntresseNamn,M.ID FROM intressen as I left join medlemsIntressen as Mi on i.intresseid = mi.intresseid left join medlemmar as M on mi.medlemsid = m.id where m.id = " & Session("ID")
set objRs = databas.execute(sql)
------------------
essentitia preter non sans multiplicandum
crisse6Medlem sedan dec. 20002 526 inlägg går tyvärr inge vidare idag... why? är trött på att inget går min väg idag... :(
kolla, får detta felmess nu: (samma kodsnutt, ngt är skumt i SQL-satsen alltså, den som står ovan detta inlägg)
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'i.intresseid = mi.intresseid left join medlemmar as M on mi.medlemsid = m.id'.
/groda/visa.asp, line 14
jag misstänker ju att det är ngt skumt med kolumnamn eller tabellnamn eller ngt... förresten varför skriver man te x (har markerat vad jag undrar över med fetstil)
[b]I.[/b]IntresseNamn
jag fattar nada....
------------------
www.groda.net *kvack*, *kvack*
[Redigerat av crisse6 den 23 apr 2001]
LarsGMedlem sedan dec. 200012 464 inlägg Det där med I.intressenamn hänger ihop med att man skriver intresse as I. I fungerar bara som en synonym för tabellnamnet.
Jag har ju testat sql-satsen i sig, inte i Access dock (i en DBMS som är mycket bättre :h). Kan det vara något som Access ogillar? Du kan ju försöka labba runt med sqlen och få selecten att fungera direkt utan att använda ASP.
Du kan ju lägga upp hela (om det inte är jättemycket) koden, så kan jag se hur det ser ut just nu.
------------------
essentitia preter non sans multiplicandum
emissionMedlem sedan dec. 19996 721 inlägg Nu ska vi nog inte gå för långt med det här, för LEFT JOIN funkar inte som det ska riktigt...eller snarare så funkar det precis som det ska, men inte här. Den gamla goa *= som ska motsvara LEFT OUTER JOIN gör inte det. Med *=, som i mitt exempel, så bör det funka. Det är dock en gammal syntax, som man bör vänja sig av vid.
Får du det att funka med LEFT JOIN
LarsG?
Annars får man ta till tuffare medel.
"SELECT I.IntresseID,I.IntresseNamn,M.MedlemsID FROM Intressen AS I,MedlemsIntressen AS M WHERE I.IntresseID = M.IntresseID AND M.MedlemsID=" & Session("MedlemsID") & " UNION SELECT IntresseID,IntresseNamn,NULL FROM Intressen
WHERE IntresseID NOT IN (SELECT IntresseID FROM MedlemsIntressen WHERE MedlemsID=" & Session("MedlemsID") & ") ORDER BY 1"
LarsGMedlem sedan dec. 200012 464 inlägg Jodå jag använder Left join och det går igenom. Men som sagt jag använder inte Access så det är väl ganska irrelevant.
------------------
essentitia preter non sans multiplicandum
crisse6Medlem sedan dec. 20002 526 inlägg okej, emission testade din kod, fungerade inte tyvärr :( kolla detta felmeddelande:
SELECT I.IntresseID,I.IntresseNamn,M.MedlemsID FROM Intressen AS I,MedlemsIntressen AS M WHERE I.IntresseID = M.IntresseID AND M.MedlemsID= UNION SELECT IntresseID,IntresseNamn,NULL FROM Intressen WHERE IntresseID NOT IN (SELECT IntresseID FROM MedlemsIntressen WHERE MedlemsID=) ORDER BY 1
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'I.IntresseID = M.IntresseID AND M.MedlemsID='.
/groda/visa.asp, line 15
hela koden igen...
<!-- #include file="adovbs.inc" -->
<!-- #include file="checkb.inc" -->
<html>
<body>
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
Dim objRS,sql
sql = "SELECT I.IntresseID,I.IntresseNamn,M.MedlemsID FROM Intressen AS I,MedlemsIntressen AS M WHERE I.IntresseID = M.IntresseID AND M.MedlemsID=" & Session("MedlemsID") & " UNION SELECT IntresseID,IntresseNamn,NULL FROM Intressen WHERE IntresseID NOT IN (SELECT IntresseID FROM MedlemsIntressen WHERE MedlemsID=" & Session("MedlemsID") & ") ORDER BY 1"
Response.Write SQL
set objRs = databas.execute(sql)
response.write "<FORM ACTION=""valj.asp"">"
%>
do until objRS.EOF
response.write "<INPUT TYPE=""checkbox"" NAME=""intresse"" value=""" & objRS(0) & """"
if not isnull(objRS(2)) then response.write " CHECKED"
response.write ">" & objRS(1) & "<BR>"
objRS.Movenext
loop
response.write "</FORM>"
objRs.close
set objRs = nothing
databas.close
set databas = nothing
%>
</body>
<!-- #include file="checkb2.inc" -->
</html>
vad gillar den inte?
------------------
www.groda.net *kvack*, *kvack*
emissionMedlem sedan dec. 19996 721 inlägg Session("MedlemsID") måste innehålla något.
LarsG:
Jo, satsen går igenom, men så fort men ge ett WHERE-villkor till den yttre tabellen så blir det i princip en INNER JOIN, Även i SQL Server.
[Redigerat av emission den 23 apr 2001]
crisse6Medlem sedan dec. 20002 526 inlägg lite bättre nu, takc! nu fick jag iaf upp en "textruta" men vad ska man skriva i den? sitt intresse eller? och hur ska det tas emot? när man kommer till valj.asp (mottagarsidan) så blir det INTE ngt felmess utan i adressfälter blir det bara ....valj.asp? och inget mer... vad är fel nu då?
------------------
www.groda.net *kvack*, *kvack*
LarsGMedlem sedan dec. 200012 464 inlägg Sant, union varianten är ok.
------------------
essentitia preter non sans multiplicandum
LarsGMedlem sedan dec. 200012 464 inlägg Det verkar som om du inte har något data i dina tabeller. Precis som jag när jag testade left join :h
------------------
essentitia preter non sans multiplicandum
crisse6Medlem sedan dec. 20002 526 inlägg ööhhh.... okej??? men VAD ska jag skriva i tabellerna då?
------------------
www.groda.net *kvack*, *kvack*
emissionMedlem sedan dec. 19996 721 inlägg Se till att de olika intressena finns i Intressen