Avatar billede krogstrup Nybegynder
16. juli 2001 - 16:55 Der er 11 kommentarer og
2 løsninger

Generel SQL hjælp...

Jeg har f.eks. et kundetabel:

kundeID
navn
adresse
sælgerID
byID
landeID

osv. osv.


Jeg henter med andre ord de fleste af min kundes informationer fra andre tabeller for ikke at gentage de samme informationer mere end een gang!

Når jeg nu ønsker at lave en side, der viser de forskellige informationer for en given kunde, bliver jeg altså nødt til at lave et opslag i kunde-tabellen og dernæst et nyt opslag for hver information, der er linket fra en anden tabel, eller hvad ????

Kan jeg i eet SQL kald oprette et recordset der indeholder alle mine informationer. Jeg ønsker altså at der i dette recordset ikke skal vises tallet landeID, men navnet på det land der findes i tabellen lande!!!
Avatar billede erikjacobsen Ekspert
16. juli 2001 - 16:59 #1
Ja, princippet er

  select * from kundetabel,landetabel where kundetabel.landeID=landetabel.id
Avatar billede krogstrup Nybegynder
16. juli 2001 - 17:31 #2
Hvordan refererer jeg så til selve lande-navnet fra lande-tabellen ?

Hvis nu f.eks. lande-tabellen ser således ud:
- landeID
- landeNavn


Kan jeg så bare skrive
rs.landeNavn

???
Avatar billede erikjacobsen Ekspert
16. juli 2001 - 17:51 #3
jah, rs(\"landenavn\")

Er der navnekonfikt kan man vist også - eller kan man i ASP.... - skrivr
rs(\"landetabel.landenavn\"). Går alt galt omdøber du blot

  select landetabel.landenavn as aforeigncountry, ....

og bruger rs(\"aforeigncountry\")
Avatar billede webbe Nybegynder
17. juli 2001 - 08:18 #4
Nix - rs(\"landetabel.landenavn\") duer ikke - skal man til den slags er det rs.landetabel.item(\"landenavn\").value da sql/asp er hierakisk opbygget!
Avatar billede krogstrup Nybegynder
17. juli 2001 - 10:04 #5
Ok - det vil med andre ord være en rigtig god ide at undgå at der er ens felt-navne på tværs af tabellerne, hvis jeg har brug for at hente recordssets på kryds og tværs....

Jeg takker for hjælpen :-)

Kan jeg ikke få et svar fra dig Erik ?
Avatar billede erikjacobsen Ekspert
17. juli 2001 - 10:18 #6
webbe har nok ret - jeg kender ikke så meget til det hersens ASP :) Jeg kan
bare huske at der er flere måder at løse problemet med ens navne.

Et svar - joh - men det er vel ikke 30 p værd
Avatar billede webbe Nybegynder
17. juli 2001 - 10:23 #7
Krogstrup:

Du kan sagtens have flere tabeller med ens feltnavne.....bruger jeg ofte....men du skal bare bruge forskellige recordset - kan godt hjælpe med en løsning hvis der gives flere point for det! ;o)
Avatar billede krogstrup Nybegynder
17. juli 2001 - 10:29 #8
webbe >>>

Det må da under alle omstændigheder være nemmest blot at undgå ens feltnavne. Det vil da altid være nemmere kun at skulle åbne et recordset, eller hvad ???

Hvis der er en god grund til at det er smartere at åbne flere recordssets ad gangen, lægger jeg gerne nogle flere points for nogle guldkorn :-)
Avatar billede webbe Nybegynder
17. juli 2001 - 10:40 #9
Du kan godt nøjes med ét recordset og så bruge forskellige feltnavne....det bestemmer du selv....kan hjælpe med en løsning uanset hvad....men det kræver altså lidt flere point! ;o)
Avatar billede krogstrup Nybegynder
17. juli 2001 - 10:53 #10
Godt - nu har jeg forhøjet til 60 points. Så kan du få 40 af dem - er det i orden ?
Avatar billede krogstrup Nybegynder
17. juli 2001 - 10:54 #11
Nu har du jo gjort mig nysgerrig ?

:-)
Avatar billede webbe Nybegynder
17. juli 2001 - 12:01 #12
Prøv med følgende:

Set rs = Server.CreateObject(\"ADODB.Recordset\")
rs.Open \"SELECT * FROM kundetabel,landetabel WHERE (kundetabel.lande_id=landetabel.land_id)\", Connect, 1, 3

Hvis du skal bruge flere kriterier (eller tabeller) sammen med kan det også laves....ved godt svaret ligener erikjacobsen\'s....derfor bør du nok dele pointene ligeligt mellem os!
Avatar billede webbe Nybegynder
17. juli 2001 - 12:02 #13
Når du kalder dit recordset skriver du bare:

rs(\"Lande_id\")
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