Avatar billede svjensen Nybegynder
22. september 2003 - 22:47 Der er 3 kommentarer og
1 løsning

Opdatering af holddatabase, problem med SQL

Jeg har en holddatabase bestående af tre tabeller:

teams:
------
teamid
teamnavn
raekke

medlemmer:
----------
medlemsnr
fornavn
efternavn

hold:
-----
teamid
medlemsnr

Tabellen 'hold' kobler teams med spillere.

Jeg viser holdet og nedenunder alle spillere. De der er sat på holdet har 'checked' i deres checkbox:

        response.write "<form action='teams.asp?action=update&team=" & rsTeams("teamid") & "' method=post>"
        response.write "<tr><th colspan=2>" & rsTeams("teamnavn") & "<br>" & rsTeams("raekke") & "</th>"
        response.write "<td><input type=submit value='Opdater holdet'></td></tr>"

        strSQLSPillere = "select medlemmer.medlemsnr, fornavn, efternavn, teamid "
        strSQLSpillere = strSQLSpillere & "FROM medlemmer "
        strSQLSpillere = strSQLSpillere & "LEFT JOIN hold ON medlemmer.medlemsnr = hold.medlemsnr"
        set rsSpillere = conn.execute(strSQLSpillere)

        While not rsSpillere.EOF
            Response.write "<TD class=TDRadioButton><INPUT TYPE='checkbox' value=" & rsSpillere("medlemsnr") & " name='chk1' class=radiobutton"
            If int(rsSpillere("teamid")) = int(rsTeams("teamid")) Then
                response.write " checked>"
            Else
                response.write ">"
            End If
           
            response.write "</td>"
            response.write "<td>" & rsSpillere("fornavn") & " " & rsSpillere("efternavn") & "</td></tr>"
            rsSpillere.MoveNext
        Wend

        response.write "<tr><td colspan=2>&nbsp;</td></tr>"
        response.write "</form>"


Når der trykkes på 'Opdater holdet' afvikles følgende:

    strSQL = "INSERT INTO hold (teamid, medlemsnr) "
    strSQL = strSQL & "SELECT " & teamet & ", medlemsnr "
    strSQL = strSQL & "FROM medlemmer WHERE medlemsnr IN (" & request.form("chk1") & ") "
    strSQL = strSQL & "AND NOT Exists (SELECT hold.medlemsnr FROM hold WHERE hold.medlemsnr = medlemmer.medlemsnr "
    strSQL = strSQL & "AND hold.teamid = " & teamet & ")"
    set rs = conn.execute(strSQL)


Men det giver mig følgende fejl:

ADODB.Connection.1 error '80004005'

SQLState: 42000
Native Error Code: 1064
[TCX][MyODBC]You have an error in your SQL syntax near 'Exists (SELECT hold.medlemsnr FROM hold WHERE hold.medlemsnr = medlemmer.medlems' at line 1


/teams.asp, line 27

Hvor linie 27 er linien med: set rs = ......

Hvad gør jeg galt?
Avatar billede svjensen Nybegynder
22. september 2003 - 22:51 #1
Jeg glemte lige at nævne at jeg anvender MySQL
Avatar billede codebase Praktikant
22. september 2003 - 23:39 #2
nested sql, er først med i MySql ver. 4.1
http://www.mysql.com/press/release_2003_05.html
Avatar billede svjensen Nybegynder
23. september 2003 - 08:18 #3
Har du (eller andre) nogen ide til, hvordan jeg så kan klare problemet?
Avatar billede svjensen Nybegynder
31. oktober 2003 - 08:12 #4
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester