27. oktober 2001 - 14:34Der er
9 kommentarer og 1 løsning
SQL forespørgelse på flere tabeller
Hej...
Er der en der kan fortælle mig hvor det går galt her...
Hvis jeg forespørger på Firstname returneres det rigtige antal poster, men forespørger jeg på Surname eller OriginalTitle returneres alle kombinationer af de forskellige tabellers rækker...
Her er koden: -------------
\' Opbygger dynamisk SQL streng strSQL = \"SELECT ARTIST.ArtistID, ARTIST.Surname, ARTIST.Firstname, ARTWORK.ArtworkID, ARTWORK.OriginalTitle, ARTWORK.Year, ARTWORK.Size, GENRE.Genre, MEDIA.Media FROM ARTIST, ARTWORK, ARTIST_ARTWORK, MEDIA, GENRE WHERE ARTIST.ArtistID=ARTIST_ARTWORK.ArtistID AND ARTWORK.ArtworkID=ARTIST_ARTWORK.ArtworkID AND ARTWORK.MediaID=MEDIA.MediaID AND ARTWORK.GenreID=GENRE.GenreID AND\" strSQL = strSQL & \" (ARTIST.Firstname LIKE \'%\" & strKeyword & \"%\')\" strSQL = strSQL & \" OR (ARTIST.Surname LIKE \'%\" & strKeyword & \"%\')\" strSQL = strSQL & \" OR (ARTWORK.OriginalTitle LIKE \'%\" & strKeyword & \"%\')\"
\' Skaber forbindelse til databasen Set Conn = Server.CreateObject(\"ADODB.Connection\") Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"\\smidud\\db\\Image.mdb\")
\' Skaber et recordset udfra SQL strengen Set rs = Conn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then \' Hvis der er fundet poster på søgningen Response.Write \"<p>Result of your search</p>\" Response.Write \"<table width=70% border=0 cellspacing=0 cellpadding=3>\" Do While Not rs.EOF Response.Write \"<tr><td>\" & rs(\"Firstname\") & \"</td>\" Response.Write \"<td>\" & rs(\"Surname\") & \"</td>\" Response.Write \"<td><a href=\'details.htm?art=\" & rs(\"ArtworkID\")&\"\'>\" & rs(\"OriginalTitle\") & \"</a></td>\" Response.Write \"<td>\" & rs(\"Year\") & \"</td>\" Response.Write \"<td>\" & rs(\"Media\") & \"</td>\" Response.Write \"<td>\" & rs(\"Genre\") & \"</td></tr>\" rs.MoveNext Loop Response.Write \"</table>\" ------------------------------------------------------
Jeg kan forestille mig at sql\'en skal indeholde en form for JOIN, men kan ikke komme videre...
Forstår det heller ikke helt selv...den sql der foreligger burde virke, men er HELT NY i asp, så det kan godt være det er der det går galt.
Lige nu er der 7 kunstnere i databasen, der hver har malet et par billeder. De har malet med forskellige medier (olie, akvarel, tusch, etc), og maler i forskellige stilarter (surrealisme, abstrakt, impressionistisk etc.)
Henry Heerup er en af kunstnerne, og søger jeg på Henry finder forespørgelsen de rigtige 3 poster frem. Søger jeg på Heerup finder den alle poster frem i alle mulige kombinationer. Nu har Heerup både malet det ene og det andet billede, endda med flere forskellige medier og indenfor flere forskellige genrer.
Har fået hjælp til søgestrengen, og herefter blot kopieret den og smidt OR ind for at lave en fritekstsøgning...det kan meget vel være her det går galt...som sagt er helt bottomline nybegynder
Kan du fortælle mig hvordan jeg løser problemet ?-)
Det er nemt at stirre sig blind på andres SQL-strenge :) Når du bruger Access kan du f.eks. bruge Query-funktionen (forespørgsler i den danske udgave). Den er god til at lave SQL-sætninger med.
Ja jeg ved det godt :-) Prøver dit forslag med at få access til at bygge noget sql...synes bare at den ofte genererer de mystiske sætninger...
Synes godt om
Slettet bruger
27. oktober 2001 - 17:14#6
Ja, men hvis jeg skal kunne lave det for dig, skal jeg bruge din database og vide præcist hvad du skal have hevet ud af den. Du kan bare sende den hvis jeg skal gøre det. Min mail står under min profil. Det samme gør mit ICQ #.
Ok, roder lige selv lidt med det...hvis det går helt i hårknude vil jeg meget gerne have du kigger på det ;-)
Synes godt om
Slettet bruger
28. oktober 2001 - 12:35#8
Hej Jesper! Så har jeg kigget på det. Din SQL-streng så god nok ud. Jeg har lagt det jeg har lavet her: http://www.magik.dk/image/ Så må du jo vurdere om det er det du skal bruge :)
Mange, mange tak for hjælpen. Du har bragt mig meget videre.
Som jeg nævnte i min mail leder jeg stadig efter Stress programmer, så hvis du går efter en \"bonus\" er jeg parat til at kaste yderligere 50 point til Jylland.
Skriv lige tilbage, om jeg skal oprette et nyt spørgsmål om dette
Jesper
Synes godt om
Slettet bruger
28. oktober 2001 - 20:06#10
Tak for points Jesper :) Kender ikke selv umiddelbart noget til stress programmer, men jeg kan lige forhøre mig imorgen. Så skal jeg nok lige kontakte dig.
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.