Avatar billede krogstrup Nybegynder
03. maj 2001 - 08:50 Der er 10 kommentarer og
1 løsning

Et SQL spørgsmål, tror jeg...

Et teoretisk spm:

Hvordan hentes følgende informationer i een SQL forespørgsel:


<opret forbindelse>
<SQL: select bilID from tableX>
<hent records>
<loop gennem alle mine records>


<opret forbindelse2>
<SQL: select * from tableZ where ID = bilID>
<hent record>
<indlæs data i variabel>
<luk forbindelse>


<next>
<luk forbindelse>


Ovenstående virker jo, MEN belaster server meget, da der for hvert loop bliver åbnet og lukket endnu en database-connection!

Hvordan optimeres ovenstående kode ???
Avatar billede senj Nybegynder
03. maj 2001 - 08:52 #1
Kan du ikke joine de to tabeller og lave en connection. Derpå selvfølgelig droppe Select * i tilfælde af at du ikke skal bruge alle kolonner?
Avatar billede krogstrup Nybegynder
03. maj 2001 - 09:14 #2
Jeg er ikke så stærk i relationer mellem tabeller + SQL sproget, så hvis du kunne vise mig et kode eksempel ville jeg være meget taknemmelig :-)
Avatar billede senj Nybegynder
03. maj 2001 - 09:22 #3
Ok. I øjeblikket arbejder jeg med en udlåns databse, der viser hvilke mus der er udlånt og hvem der har dem.

Jeg henter oplysninger fra 3 tabeller, leverandør, mus, mouse_deal i følgende SQL sætning.

\"SELECT leverandor.id, leverandor.leverandor, mus.id, mus.navn, mus.model, mus.model_nr, mus.hand, mouse_deal.id, mouse_deal.init, mouse_deal.status, mouse_deal.dato_udlaan, mouse_deal.dato_retur, mouse_deal.rykket_dato, mouse_deal.kommentar FROM leverandor, mouse_deal, mus WHERE mus.id = mouse_deal.mus_id And mus.lev_id = leverandor.id;\"
Avatar billede krogstrup Nybegynder
03. maj 2001 - 09:34 #4
Vil ovenstående SQL eksempel også kunne bruges hvis jeg har brug for følgende:

<opret forbindelse>
<SQL: select bilID from tableX>
<hent records>
<loop gennem alle mine records>

<opret forbindelse2>
<SQL: select * from tableZ where ID = bilID>
<hent record>
<indlæs data i variabel>
<luk forbindelse>


<udskriv variabel fra forbindelse2>
<udskriv diverse data fra forbindelse1>


<next>
<luk forbindelse>


Jeg har altså brug for at der loopes gennem tabel A på basis af diverse kriteriesæt.

I hvert loop ønsker jeg at udskrive diverse data fra mine records. MEN: een af de data jeg ønsker at udskrive er f.eks. et ID, som repræsenterer et navn i tabel B. Jeg skal altså for hvert loop igennem tabel A hente et navn fra tabel B udfra en ID i tabel A.

Wauu - Giver det overhovedet nogen mening ???

:-)
Avatar billede senj Nybegynder
03. maj 2001 - 09:38 #5
Prøv at beskrive tabellerne så er det lettere at se sammenhængen?
Avatar billede krogstrup Nybegynder
03. maj 2001 - 09:48 #6
Vi forestiller os at jeg skal lave et system til administrering af domæner:

tableA: ID, domænenavn, mailserverID
tableB: ID, mailserverNavn

Der loopes gennem tableA for at hente ALLE domænenavne. For hvert domænenavn har jeg brug for at lave et opslag i tableB, således at jeg ikke blot udskriver mailserverID på skærmen, men det egentlige navn på mailserveren (som findes i tableB)

Gi´r det mere mening ?
Avatar billede senj Nybegynder
03. maj 2001 - 09:53 #7
SELECT * FROM tableA, tableB WHERE tableA.id = tableb.id.

Så får du alle rækker i tabel A og hvis der findes et matchende id i tabelB så skriver den også navnet!

Gir det mening? :-)
Avatar billede krogstrup Nybegynder
03. maj 2001 - 10:11 #8
Mit output skal se således ud:

domæne: kha.dk
mailserver: mail.kha.dk

domæne: microsoft.dk
mailserver: mail.microsoft.dk


Jeg laver min SQL således:

SELECT * FROM tableA, tableB WHERE tableA.mailserverID = tableB.ID

Er det korrekt ?

Hvis ja; hvorledes refererer jeg nu til mit mailservernavn?

<%=rs(\"mailserverNavn\")%>  ?!?!?!
Avatar billede senj Nybegynder
03. maj 2001 - 10:16 #9
Ja eller
<%
navn = rs(\"mailservernavn\");
%>
og så

<%Response.write(navn)%>

Avatar billede krogstrup Nybegynder
03. maj 2001 - 11:13 #10
Ahaaaaa - endelig faldt tiøren for mig :-)

TUSIND tak for din tid :-)
Avatar billede senj Nybegynder
03. maj 2001 - 11:15 #11
Det var så lidt :-)
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