Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Presentera data från 3 tabeller

Postades av 2005-02-15 14:19:56 - Johan Moberg, i forum asp - allmänt, Tråden har 8 Kommentarer och lästs av 874 personer

Om jag har följande tre tabeller i en Access databas

t_references
ObjID | ObjName | ObjOrt

Där ObjID har ett unikt ID.

t_gallery
FileID | FileName | CatPath

Där FileID har ett unikt ID.

t_ref_gal_relation
ObjID | FileID

Där ObjID har en relation med ObjID i tabellen t_references och FileID
har en relation med FileID i tabellen t_gallery.

Hur ska jag då skriva sql-satsen för att kunna presentera en vald post
från tabellen t_references samt alla bilder som har en relation med den posten?

Har förstått att man måste använda JOIN men hur? eller behöver man inte det?


Svara

Sv: Presentera data från 3 tabeller

Postades av 2005-02-15 14:27:16 - Fredrik Malmström

t_references
ObjID | ObjName | ObjOrt

t_gallery
FileID | FileName | CatPath

t_ref_gal_relation
ObjID | FileID


Hur ska jag då skriva sql-satsen för att kunna presentera en vald post
från tabellen t_references samt alla bilder som har en relation med den posten?
<code>SELECT * FROM t_references, t_gallery INNER JOIN ON t_ref_gal_relation WHERE t_references.ObjID = t_ref_gal_relation.ObjID AND t_gallery.FileID = t_ref_gal_relation.FileID</code>

Eller nå sådant.. har inte pysslat med SQL så mycket nu på senaste halvåret! :S



Svara

Sv:Presentera data från 3 tabeller

Postades av 2005-02-15 14:52:38 - Johan Moberg

Tack för snabbt svar, men tyvärr fungerar det inte :-(

Får felmeddelandet:

Feltyp:
Microsoft JET Database Engine (0x80040E14)
Syntaxfel i FROM-instruktion.


Svara

Sv: Presentera data från 3 tabeller

Postades av 2005-02-15 14:55:48 - Tomas Johansson

Prova det här:

SELECT t_gallery.FileID, t_gallery.FileName, t_gallery.CatPath, t_references.ObjName, t_references.ObjOrt
FROM (t_references INNER JOIN t_ref_gal_relation ON t_references.ObjID = t_ref_gal_relation.ObjID) INNER JOIN t_gallery ON t_ref_gal_relation.FileID = t_gallery.FileID;

mvh Tomas


Svara

Sv:Presentera data från 3 tabeller

Postades av 2005-02-15 15:23:45 - Johan Moberg

Tack, det fungerade!

Vad glad jag blir, har suttit och klurat på detta grymt länge :-)

En liten fråga till bara ;-)

Om jag från en tidigare sidan skickar ObjID från tabellen t_references med Request.QueryString
ska jag då lägga till det sist som detta:

sql = "Select t_gallery.FileID, t_gallery.FileName, t_gallery.CatPath, t_references.ObjName, t_references.ObjOrt FROM (t_references INNER JOIN t_ref_gal_relation ON t_references.ObjID = t_ref_gal_relation.ObjID) INNER JOIN t_gallery ON t_ref_gal_relation.FileID = t_gallery.FileID Where t_references.ObjID="& Trim(Request.QueryString("id")) &""

Det fungerar, tänkte bara om det är okej eller om det finns ett bättre sätt.


Svara

Sv: Presentera data från 3 tabeller

Postades av 2005-02-15 15:31:00 - Fredrik Malmström

ehmm ante mig att de inte skulle funka... som jag sa! :D

Ehmm inget sätt är dåligt, utom de dåliga!


Svara

Sv: Presentera data från 3 tabeller

Postades av 2005-02-15 16:54:05 - Anders Larsson

That's the way to do it!!


Svara

Sv:Presentera data från 3 tabeller

Postades av 2005-02-15 19:34:50 - Johan Moberg

Tack alla för hjälpen!


Svara

Sv: Presentera data från 3 tabeller

Postades av 2005-02-15 22:10:20 - Tomas Johansson

Man bör undvika att fylla på en SQL-sträng på det där sättet eftersom det kan vara en säkerhetsrisk att exekvera sådan SQL-kod.

T.ex. om du förväntar dig och förutsätter en sån här URL:
www.dindoman.com?id=1234
så kanske en illvillig anvandare försöker att göra så här ungefär (eller encodar med %3B istället för ; i querystringen nedan) :
www.dindoman.com?id=;delete from dintabell
Detta exempel illustrerar alltså principen för varför det kan vara farligt att utan vidare exekvera SQL som kommer från en användare, om den databas-användaren som man använder har vissa behörigheter och om den illvilliga känner till eller kan gissa namn på tabeller.

Man bör istället ta för vana att alltid använda s.k. placeholders (frågetecken i SQL-satserna).
Kodexempel:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdproactivecommandx.asp

En annan fördel med placeholders, förutom hacker-aspekten är att man vid användning av speciella tecken (t.ex. apostrofer) i strängfält minskar risken för SQL-fel.
Exempelvis om du har textfält på sidan och gör så här i ASP-sidan:
sql = "select ... where myString = '" & Request.QueryString("myTextField") & "'"
så får du SQL-fel om användaren matar in ett ' tecken.
Det går förstås att själv programmatiskt fixa till genom att ersätta specialtecken men det enklaste sättet är att använda placeholders.

/ Tomas


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 783
27 960
271 761
536
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies