/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
hent fra 2 tabler
Fra : pepss


Dato : 18-01-04 11:37

Hejsa NG

jeg henter noget data på den her måde:
Set objRs = Conn.Execute("SELECT * FROM fotoalbum as f, medlemmer as m Where
m.album = 1 AND f.kon = '" & strkon & "' ";")

så vil jeg gerne udskrive resultatet senner men hvordan bestemer jeg fra
vilken table jeg udskriver fra?

altså noget alá objRs("b1")fra_fotoalbum


--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk



 
 
Jens Gyldenkærne Cla~ (18-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-01-04 15:59

pepss skrev:

> jeg henter noget data på den her måde:
> Set objRs = Conn.Execute("SELECT * FROM fotoalbum as f,
> medlemmer as m Where m.album = 1 AND f.kon = '" & strkon & "'
> ";")

Hvad skal du bruge data til? Normalt er det ikke godt at hente data
fra flere tabeller uden et joinudtryk der binder dem sammen.


> så vil jeg gerne udskrive resultatet senner men hvordan
> bestemer jeg fra vilken table jeg udskriver fra?
>
> altså noget alá objRs("b1")fra_fotoalbum

Hvis feltnavnene overlapper, kan du vist nok præfikse med
aliasnavnet:

objRs("f.b1") / objRs("m.b1")

Ellers kan du altid lave alias i din selectsætning:

SELECT f.b1 as f_b1, m.b1 as m_b1 FROM ....


Men som nævnt først - overvej lige om du i det hele taget skal
hente fra de to tabeller på en gang.
--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

pepss (18-01-2004)
Kommentar
Fra : pepss


Dato : 18-01-04 16:54


"Jens Gyldenkærne Clausen" skrev
> pepss skrev:
>
> > jeg henter noget data på den her måde:
> > Set objRs = Conn.Execute("SELECT * FROM fotoalbum as f,
> > medlemmer as m Where m.album = 1 AND f.kon = '" & strkon & "'
> > ";")
>
> Hvad skal du bruge data til? Normalt er det ikke godt at hente data
> fra flere tabeller uden et joinudtryk der binder dem sammen.

jeg er slet ikke sikkr på det er det rigtig jeg gør men det var for at prøve
mig frem!

det jeg vil er at hente fra fotoalbumet hvis feltet album(fra tablen
medlemmer) er =1.
begge tabler har et profilid felt for at kunne referere til heanden

> > så vil jeg gerne udskrive resultatet senner men hvordan
> > bestemer jeg fra vilken table jeg udskriver fra?
> >
> > altså noget alá objRs("b1")fra_fotoalbum
>
> Hvis feltnavnene overlapper, kan du vist nok præfikse med
> aliasnavnet:
>
> objRs("f.b1") / objRs("m.b1")

det sys jeg ikke rigtig jeg kunne få til at virke

> Ellers kan du altid lave alias i din selectsætning:
>
> SELECT f.b1 as f_b1, m.b1 as m_b1 FROM ....

det havde jeg slet ikke prøvet selvom det da ser meget indlysene ud!

> Men som nævnt først - overvej lige om du i det hele taget skal
> hente fra de to tabeller på en gang.

ja det skal jeg jo nok slet ikke!

--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk



pepss (19-01-2004)
Kommentar
Fra : pepss


Dato : 19-01-04 09:36


"Jens Gyldenkærne Clausen" skrev
> pepss skrev:
>
> > jeg henter noget data på den her måde:
> > Set objRs = Conn.Execute("SELECT * FROM fotoalbum as f,
> > medlemmer as m Where m.album = 1 AND f.kon = '" & strkon & "'
> > ";")
>
> Hvad skal du bruge data til? Normalt er det ikke godt at hente data
> fra flere tabeller uden et joinudtryk der binder dem sammen.

det var lige de gyldne ord! joinudtryk var hvad det skulle til!
jeg havde bare aldrig hørt/brugt det før så en nat med læsning gav:

Set objRs = Conn.Execute("SELECT fotoalbum.b1, til fotoalbum.b18,
fotoalbum.profilid FROM fotoalbum INNER JOIN medlemmer ON fotoalbum.profilid
= medlemmer.profilid Where medlemmer.album = 1 AND medlemmer.kon = '" &
strkon & "' ;")

jeg trode sq aldrig jeg ville få det til at virke

rigtig mange tak for hjælpen!

--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk



Jens Gyldenkærne Cla~ (19-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 19-01-04 10:39

pepss skrev:

> det var lige de gyldne ord! joinudtryk var hvad det skulle
> til!

Tænkte det nok. Det er essentielt at kende til joins når man
arbejder med databaser med mere end én tabel.

Jeg kan se at du har læst på lektien og fået det til at virke -
tillykke med det.

> Set objRs = Conn.Execute("SELECT fotoalbum.b1, til
> fotoalbum.b18, fotoalbum.profilid FROM fotoalbum INNER JOIN
> medlemmer ON fotoalbum.profilid = medlemmer.profilid Where
> medlemmer.album = 1 AND medlemmer.kon = '" & strkon & "' ;")

To små kommentarer.

- Generelt når man arbejder med forespørgler i asp (og andre
serversidesprog for den sags skyld), er det en god ide at gemme dem
i en variabel før man kører dem. På den måde er det let at debugge
ved at skrive variablen ud (du ved det muligvis allerede, men nu
kommenterer jeg alligevel).

- Man kan med fordel benytte tabelalias i forespørgsler med
joinudtryk. Det gøres i de databaser jeg kender til ved at sætte et
alias direkte efter tabelnavnet i FROM-delen:

SELECT f.b1, f.b18, f.profilID
FROM fotoalbum f INNER JOIN medlemmer m
ON f.profilID = m.profilID
WHERE m.album = 1 AND m.kon = 'medisterpølse'

I ovenstående udtryk erstatter f fotoalbum og m medlemmer i første,
tredje og fjerde linje. Anden linje erklærer de to aliasser.

Som du kan se, kan et alias gøre sætningen noget kortere og i mine
øjne også noget lettere at læse. Databasen er ligeglad - det virker
fint både med og uden alias - så det er kun for overskuelighedens
skyld at man skal bruge alias.
--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

pepss (19-01-2004)
Kommentar
Fra : pepss


Dato : 19-01-04 10:59


"Jens Gyldenkærne Clausen" skrev
> pepss skrev:
>
> > det var lige de gyldne ord! joinudtryk var hvad det skulle
> > til!
>
> Tænkte det nok. Det er essentielt at kende til joins når man
> arbejder med databaser med mere end én tabel.

ja det fant jeg så ud af! jeg har 9 som alle har profilid at gå ud fra!

> Jeg kan se at du har læst på lektien og fået det til at virke -
> tillykke med det.

takker

> To små kommentarer.
>
> - Generelt når man arbejder med forespørgler i asp (og andre
> serversidesprog for den sags skyld), er det en god ide at gemme dem
> i en variabel før man kører dem. På den måde er det let at debugge
> ved at skrive variablen ud (du ved det muligvis allerede, men nu
> kommenterer jeg alligevel).

tja... det ved jeg endlig ikke hvorfor jeg har gjort det sådan denne gang...

> - Man kan med fordel benytte tabelalias i forespørgsler med
> joinudtryk. Det gøres i de databaser jeg kender til ved at sætte et
> alias direkte efter tabelnavnet i FROM-delen:

[snip]

> I ovenstående udtryk erstatter f fotoalbum og m medlemmer i første,
> tredje og fjerde linje. Anden linje erklærer de to aliasser.
>
> Som du kan se, kan et alias gøre sætningen noget kortere og i mine
> øjne også noget lettere at læse. Databasen er ligeglad - det virker
> fint både med og uden alias - så det er kun for overskuelighedens
> skyld at man skal bruge alias.

ja det vil hjælpe på det! det bliver meget hurtig uoverskuelig!
det var også kun en del af sql kaldet jeg sendte. der er også noget paging i
kaldet så den er meget lang!

lige et lille spørgsmål mere!
hvad er forskelden på rs("noget") og objRs("noget")?


--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk



Jens Gyldenkærne Cla~ (19-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 19-01-04 12:09

pepss skrev:

> lige et lille spørgsmål mere!
> hvad er forskelden på rs("noget") og objRs("noget")?

Navnet på variablen der indeholder postsættet. Nogen foretrækker at
kalde det rs andre objRs - men det er fuldstændig ligegyldigt i
forhold til asp.

Dim rs
set rs = Conn.Execute

hhv.

Dim objRs
set objRs = Conn.Execute

Det er ikke anderledes end at nogle foretrækker at bruge strSQL og
andre blot sql som variabelnavn til sql-sætninger.

Jeg futter lige over til asp-gruppen - vi er røget væk fra
databasesnakken nu.
FUT: dk.edb.internet.webdesign.serverside.asp
--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

pepss (19-01-2004)
Kommentar
Fra : pepss


Dato : 19-01-04 12:36


"Jens Gyldenkærne Clausen" skrev
> pepss skrev:
>
> > lige et lille spørgsmål mere!
> > hvad er forskelden på rs("noget") og objRs("noget")?
>
> Navnet på variablen der indeholder postsættet. Nogen foretrækker at
> kalde det rs andre objRs - men det er fuldstændig ligegyldigt i
> forhold til asp.
>
> Det er ikke anderledes end at nogle foretrækker at bruge strSQL og
> andre blot sql som variabelnavn til sql-sætninger.

jamen så bliver jeg da det minder forvirret af at kikke på eksempler
tak for dit svar!

--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk



pepss (18-01-2004)
Kommentar
Fra : pepss


Dato : 18-01-04 16:59


"pepss" skrev
> jeg henter noget data på den her måde:
> Set objRs = Conn.Execute("SELECT * FROM fotoalbum as f, medlemmer as m
Where
> m.album = 1 AND f.kon = '" & strkon & "' ";")

jeg glemte lige at fortælle at jeg bruger en MySQL database!

--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk



pepss (18-01-2004)
Kommentar
Fra : pepss


Dato : 18-01-04 20:59


"pepss" skrev

[snip en hel masse som nok var noget forvirenderne!]

jeg prøver lige igen og håber det bliver beder

jeg bruger en MySQL database.

det jeg gerne vil er noget alá

strSQL = "select profilid from medlemmer Where album = 1"
Set rs = Conn.Execute(strSQL)
Do
strSQL = "select b1 from fotoalbum Where b1 <> Null"
Set rs = Conn.Execute(strSQL)
rs.MoveNext
Loop While Not rs.EOF

kan det ikke gøres i et kald?


--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk



Jens Gyldenkærne Cla~ (18-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-01-04 22:30

pepss skrev:

> strSQL = "select profilid from medlemmer Where album = 1"
> Set rs = Conn.Execute(strSQL)
> Do
> strSQL = "select b1 from fotoalbum Where b1 <> Null"

Hvor er profilID henne i din anden select? Prøv at vise din
tabelstruktur her (primært de felter du vil have udskrevet og de
felter der refererer til og fra andre tabeller).
--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

pepss (18-01-2004)
Kommentar
Fra : pepss


Dato : 18-01-04 22:54


"Jens Gyldenkærne Clausen" skrev
> pepss skrev:
>
> > strSQL = "select profilid from medlemmer Where album = 1"
> > Set rs = Conn.Execute(strSQL)
> > Do
> > strSQL = "select b1 from fotoalbum Where b1 <> Null"
>
> Hvor er profilID henne i din anden select? Prøv at vise din
> tabelstruktur her (primært de felter du vil have udskrevet og de
> felter der refererer til og fra andre tabeller).

tabel medlemmer:
[profilid] [album] + en masse data om profilen

tabel fotoalbum:
[profilid (den id følger profiliden fra medlemmer)] [b1] til [b18]

begge profilider er unikke.
det hele går du på at jeg skal se i tabellen medlemmer om profilen har et
fotoalbum og hvis ja skal jeg ha fundet ud af i vinket felt i tabellen
fotoalbum den første stig til billederne er.

jeg undskylder mange gang hvis jeg ikke for mig forklaret godt nok!
nu har jeg bøvlet med det her i 4 dage og er selv ved at kludrer rund i det!

--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk



pepss (18-01-2004)
Kommentar
Fra : pepss


Dato : 18-01-04 23:08


"Jens Gyldenkærne Clausen" skrev
> pepss skrev:
>
> > strSQL = "select profilid from medlemmer Where album = 1"
> > Set rs = Conn.Execute(strSQL)
> > Do
> > strSQL = "select b1 from fotoalbum Where b1 <> Null"
>
> Hvor er profilID henne i din anden select?

glemte lige den her!
der skulle selvføglig stå:
strSQL = "select b1 til b18 from fotoalbum Where profilid(fra fotoalbum)=
profilid(fra medlemmer)"


--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk




Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408509
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste