Avatar billede dramsgaard Nybegynder
11. december 2004 - 19:46 Der er 28 kommentarer og
1 løsning

join på 2 tabeller

jeg har to tabeller i en db
BESEATNING
id (autonr)
navn

AFSTAMNING
dyrNavn (nr)
mor (nr)
far (nr)
alle poster i "afstamning" har et nr der svare til "id" fra beseatning

hvordan kan man lave en join på de to tabeller, så alle poster i "afstamning" får erstattet deres nr med navnet fra tabellen "beseatning" når de udskrives?
Avatar billede tofte Juniormester
11. december 2004 - 20:13 #1
Du kan bruge noget lignende, hvis du bruger access:
SELECT * FROM BESEATNING RIGHT JOIN AFSTAMNING ON BESEATNING.id=AFSTAMNING.BESEATNING;
Avatar billede dramsgaard Nybegynder
11. december 2004 - 20:22 #2
hmm får flg fejl:
Too few parameters. Expected 1.
Avatar billede tofte Juniormester
11. december 2004 - 20:34 #3
hvilken database bruger du?
Avatar billede dramsgaard Nybegynder
11. december 2004 - 20:35 #4
access
Avatar billede tofte Juniormester
11. december 2004 - 20:37 #5
prøv
SELECT AFSTAMNING.*, BESEATNING.*
FROM BESEATNING RIGHT JOIN AFSTAMNING ON BESEATNING.id = AFSTAMNING.BESEATNING;

den skulle virke, den er klippet direkte ud af access
Avatar billede dramsgaard Nybegynder
12. december 2004 - 03:02 #6
det giver flg fejl
Syntax error (missing operator) in query expression 'afstamning *'.
Avatar billede tofte Juniormester
12. december 2004 - 10:27 #7
kan du ikke lige vise mig din kode omkring og med SQL sætningen?
Avatar billede dramsgaard Nybegynder
12. december 2004 - 13:00 #8
SQL = "SELECT afstamning *, BESEATNING * FROM BESEATNING RIGHT JOIN AFSTAMNING ON BESEATNING.id = AFSTAMNING.BESEATNING"
  Set RS = MyConn.Execute(SQL)
while not rs.eof
Avatar billede dramsgaard Nybegynder
12. december 2004 - 13:18 #9
SQL = "SELECT AFSTAMNING.*, BESEATNING.* FROM BESEATNING RIGHT JOIN AFSTAMNING ON BESEATNING.id = AFSTAMNING.BESEATNING;"

giver flg fejl:
Too few parameters. Expected 1.
Avatar billede tofte Juniormester
12. december 2004 - 13:42 #10
er den den ene eller anden du bruger. Den øverste mangler et . mellem tabelnavnet og *. Har du evt mulihed for at sende en tom database til mig, så vil jeg gerne se på det når jeg kommer hjem. Jeg kan ikke lige se hvad der går galt. Mail: Rasmus(a)fjordloekke.dk
Avatar billede dramsgaard Nybegynder
12. december 2004 - 13:47 #11
det er den nederste jeg bruger....jeg sender en til dig i løbet af dagen : )
Avatar billede dramsgaard Nybegynder
12. december 2004 - 16:28 #12
myWin.document.write("<html><body><scr"+"ipt type='text/JavaScript'>opener.document.bla.submit()</scr"+"ipt></body></html>");
    myWin.document.close();

eller jeg mener hvad bruges det til?
Avatar billede dramsgaard Nybegynder
12. december 2004 - 16:29 #13
hov forkerte spørgsmål
Avatar billede tofte Juniormester
12. december 2004 - 16:31 #14
ok, har fundet fejlen.
Du skriver

AFSTAMNING
dyrNavn (nr)
mor (nr)
far (nr)
alle poster i "afstamning" har et nr der svare til "id" fra beseatning

jeg antog at feltet i afstamning som relaterer det til beseatning hed beseatning, men det gør det ikke. Jeg har ikke kunne finde noget felt som relaterer afstamning til beseatning.
Avatar billede dramsgaard Nybegynder
12. december 2004 - 16:54 #15
jeg skal bruge navnene fra tabellen "beseatning" til at erstatte numrerne i tabellen "afstamning"

alle nr udfor ex mor og far i tabellen "afstamning" er = et ID fra tabellen "beseatning"

f.eks
BESEATNING
id Navn
1  Skovly Lotus
2  RT. Jumbo
AFSTAMNING
dyrNavn far
1      2
(tallene fra AFSTAMNING skal så erstattes af navnene fra BESEATNING når de udskrives)
Avatar billede tofte Juniormester
12. december 2004 - 16:59 #16
nåå. Så er det jo bare mig der er noget galt med. Det er jo lidt mere svært, jeg ser lige på det.
Avatar billede tofte Juniormester
12. december 2004 - 17:17 #17
jeg må desværre melde pas, jeg har måske en bange anelse om, at det ikke kan lade sig gøre, men jeg er ikke sikker.
Avatar billede dramsgaard Nybegynder
12. december 2004 - 17:49 #18
hmm okay...har du så en idé om man kan lave noget tilsvarende som kan lade sige gøre?
ellers skal man vel have en masse sql'er der looper i hinanden på en eller anden måde
Avatar billede tofte Juniormester
12. december 2004 - 17:52 #19
hvormange dyr har du tænkt dig der skal være i databasen. Bare ca?
Avatar billede dramsgaard Nybegynder
12. december 2004 - 18:02 #20
det ved jeg ik....der bliver tilføjet og slettet fra websiden hele tiden...men det bliver vel ca 100 stykker
Avatar billede tofte Juniormester
12. december 2004 - 18:17 #21
Skal du bruge ovenstående til en side som skal vise data for en enkelt dyr, eller skal der vises en oversigt og mange dyr og deres familie, eller du skal måske bruge begge dele?
Avatar billede dramsgaard Nybegynder
12. december 2004 - 18:20 #22
ja det er faktisk begge dele
jeg skal have en side der viser en oversigt over alle med flg
navn mor far
og en side for hvert dyr med
navn mor far morfar mormor farmor farfar
Avatar billede tofte Juniormester
12. december 2004 - 18:58 #23
du kan evt bruge noget ala
    dim dbstring,Conn,rs,names
    dbstring="Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&server.mappath("./db.mdb")&";"
    Set Conn = Server.CreateObject("ADODB.Connection")
    conn.Open dbString
   
    set rs = conn.Execute("SELECT id,navn FROM beseatning")
    dim dyrnavn, arrayKeys, i
    set dyrnavn=CreateObject("Scripting.Dictionary")
    while not rs.eof
   
        dyrnavn.Add cstr(rs("id")),cstr(rs("navn"))
        rs.movenext
    wend
   
    rs.close
    set rs = nothing
   
    set rs = conn.Execute("SELECT * FROM afstamning")
   
    while not rs.eof
        Response.Write "Navn:"& dyrnavn.item(cstr(rs("dyrNavn")))&"<BR>"
        Response.Write " -Far:"& dyrnavn.item(cstr(rs("far")))&"<BR>"
        Response.Write " -Mor:"& dyrnavn.item(cstr(rs("mor")))&"<BR>"
        Response.Write " -Mormor:"& dyrnavn.item(cstr(rs("mormor")))&"<BR>"
        Response.Write " -Morfar:"& dyrnavn.item(cstr(rs("morfar")))&"<BR>"
        Response.Write " -Farfar:"& dyrnavn.item(cstr(rs("Farfar")))&"<BR>"
        Response.Write " -Farmor:"& dyrnavn.item(cstr(rs("farmor")))&"<BR>"
        rs.movenext
    wend


eller skal du have omstruktureret din database
Avatar billede dramsgaard Nybegynder
12. december 2004 - 20:08 #24
ja det ser ud til at virke : )
hvad er CreateObject("Scripting.Dictionary"), og hvad gør cstr?
Avatar billede tofte Juniormester
12. december 2004 - 20:44 #25
cstr konverterer bare indholdet til en string, da id er et tal, returnerer den bare det tilsvarrende tal som en tekstvariabel.

Directory er bare et opslagsværk, hvor man kan gemme en nøgle og en værdi, det er det jeg gør med add, her relaterer jeg navnet på dyret med dets id.

Efterfølgende kan man så bede directory returnere værdien gemt på nøglen, ved at skrive Item(nøgle) og nøglen er jo vors id, så directoryet returnere den relaterede post nemlig vors navn.

Men man er nød til at bruge nøglen som tekst, derfor CStr
Avatar billede dramsgaard Nybegynder
12. december 2004 - 20:55 #26
okay det er da smart : ) det kendte jeg ikke til

mange tak for din store hjælp
Avatar billede tofte Juniormester
12. december 2004 - 20:56 #27
det var så lidt
Avatar billede dramsgaard Nybegynder
13. december 2004 - 17:09 #28
hvordan kan ¨man gøre så den kun tager de poster som f.eks hvor dyrType=2 fra beseatning?
Avatar billede tofte Juniormester
13. december 2004 - 20:25 #29
du kan bare skrive SELECT .... FROM beseatning WHERE dyrType=2
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