18. juni 2004 - 09:23Der er
18 kommentarer og 1 løsning
kan jeg udtrække data fra 2 tabeller
jeg prøver at udtrække data fra 2 tabeller men kan ikke få det til at virke. ? kan jeg godt udtrække data fra en tabel der har mellemrum i tabelnavnet f.eks. select * from hej med dig - tabel where
jeg bruger følgende kode <html> <title>Hente data fra database</title> <head> </head> <body> <dl> <% ' Databaseforbindelse - husk at angive sti til din database Set Conn = Server.CreateObject("ADODB.Connection") DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\jucdk\db\Kursusstyring.mdb" Conn.Open DSN
' Hent fra databasen afhængig af værdien id fra URL strSQL = "Select * From begivenheder,Tidsplaner for kursusafgift - tabel Where begivenhedsid = " & Request.Querystring("id") Set rs = Conn.Execute(strSQL)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Det kan du godt. Du skal bare have defineret hvordan tabellerne hænger sammen. et eks.
select bruger.*, cityzip.* from (bruger inner join cityzip on cityzip.zip=bruger.zip) where bruger='fennec' eller: select bruger.*, cityzip.* from bruger, cityzip where cityzip.zip=bruger.zip and bruger='fennec'
På denne måde har man en tabel med bynavne og postnumre, men man gemmer kun postnummeret på brugeren.
Også en sidste ting. Brug aldrig mellemrum (space) i dine navne på tabeller/kolonner. brug _ eller træk dem sammen (Kursus_Afgift, KursusAfgift)
jeg hælder mere til fennec løsning da data fra de to tabeller hører sammen og jeg mangler selvfølgelig også Response.Write "<dt>Underviser:</dt><dd>" & rs("Fornavn") & "</dd>" hvis i kan hjælpe kan jeg godt friste med lidt eksta point
Eller med left join i stedet for inner join alt efter hvordan du ønsker din join skal virke. inner join tager kun med hvis der er poster som er i begge kolonne hvorimod left join til alle fra Begivenheder og dem i undervisere hvor join-ledet passer.
jeg har prøvet at skrive de forespørgslerne på forskelige måder, men lige meget hjælper det. :( i access databasen er posten begivenhedsid primærnøgle i tabellen Begivenheder og fremednøgle i tabellen Undervisere. jeg har prøvet med følgende. <html> <title>Hente data fra database</title> <head> </head> <body> <dl> <% ' Databaseforbindelse - husk at angive sti til din database Set Conn = Server.CreateObject("ADODB.Connection") DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\jucdk\db\Kursusstyring.mdb" Conn.Open DSN ' Hent fra databasen afhængig af værdien id fra URL strSQL = "select * from begivenheder Where BegivenhedsId = " & Request.Querystring("id") 'strSQL = "select * from begivenheder left join Undervisere on Begivenheder.BegivenhedsId=Undervisere.BegivenhedsId Where BegivenhedsId = " & Request.Querystring("id") 'strSQL = "select Begivenheder.* ,Undervisere.* from begivenheder left join undervisere on Begivenheder.BegivenhedsId=undervisere.BegivenhedsId Where BegivenhedsId = " & Request.Querystring("id") Set rs = Conn.Execute(strSQL) Response.Write "<dt>Titel:</dt><dd>" & rs("begivenhedsnavn") & "</dd>" Response.Write "<dt>Sted:</dt><dd>" & rs("StedNavn") & " " & rs("Startdato") & "</dd>" Response.Write "<dt>Underviser:</dt><dd>" & rs("Fornavn") & "</dd>" Conn.Close Set Conn = Nothing %>
</dl> <p><a href="liste.asp">Retur til listen</a></p> </body> </html>
tabellen begivenheder indeholder idnr på underviseren og den kan jeg godt få vist ved at kalde begivenheder men jeg er interesseret i at få vist navn adresse med mere på underviseren alt efter hvilken begivenhed der bliver kaldt.........hvis det giver mere mening.?
ok der manger en angivelse af tabel navnet i denne SQL sætning i where delen:
strSQL = "select * from begivenheder left join Undervisere on Begivenheder.BegivenhedsId=Undervisere.BegivenhedsId Where BegivenhedsId = " & Request.Querystring("id")
Sådan her:
strSQL = "select * from begivenheder left join Undervisere on Begivenheder.BegivenhedsId=Undervisere.BegivenhedsId Where begivenheder.BegivenhedsId = " & Request.Querystring("id")
Så prøv at tilføje det til SQL de kolonne du vil havde med:
strSQL = "select begivenheder.*, Undervisere.fornavn from begivenheder left join Undervisere on Begivenheder.BegivenhedsId=Undervisere.BegivenhedsId Where begivenheder.BegivenhedsId = " & Request.Querystring("id")
Tjek evt. at du har en post i Undervisere som passer med den i Begivenheder tabellen.
jo det er det og hvis jeg kører den nye forespørgsel så for jeg følgende fejl Undervisernavn: ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
/dbkursus.asp, line 23
Synes godt om
Ny brugerNybegynder
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.