Avatar billede thb Nybegynder
29. september 2003 - 13:42 Der er 26 kommentarer og
2 løsninger

Join problemer

Hej alle...

Jeg har 2 tabeller i min access db, den ene hedder hold_med og den anden traner, og i begge tabeller er der to kolonner de hedder hold_id og medlems_id

jeg skal så lave et udtræk fra begge tabeller på engang hvor den tager alle de hold_ider hvor der står et bestem session("medlem_id") og så tilsidst så skal den kun tage hvert hold_id en gang, det kan nemlig godt komme frem 2 gang..

Håber at I forstod det.. :)

Thomas
Avatar billede thb Nybegynder
29. september 2003 - 13:53 #1
Er der ikke nogle der kan hjælpe.. ??
Skriv hvis det er fordi at i ikke forstår det.. :)

Thomas
Avatar billede ldanielsen Nybegynder
29. september 2003 - 13:59 #2
Jeg kan ikke forstå det
Avatar billede thb Nybegynder
29. september 2003 - 14:06 #3
:)

Jeg har en side hvor den skal udtrække nogle forummer for et medlem der er logget ind.. session("medlems_id")

Medlemmet kan både være spiller på et hold og træner for et hold..

Jeg har så 2 tabeller 'hold_med' & 'traener' begge tabeller indeholder rækkerne 'hold_id' & 'medlems_id' det forbinder dem henholdsvis til hvilket hold de træner eller hvilket hold de spiller på..

Nu vil jeg så lave et udtræk hvor den f.eks. finder medlemmet med session("medlems_id") = 20 og så udskriver alle hans hold, dog skal den ikke udskrive hold 1 2 gange hvis han både træner og spiller på holdet..

Var det bedre.. ???

Thomas
Avatar billede myztic Nybegynder
29. september 2003 - 14:11 #4
Ikke helt sikker... altså er det sådan her
#1 Tabel: hold_med
#1 felter: medlems_id, hold_id
og
#2 Tabel: traener
#2 felter: medlems_id, hold_id

og du har så et medlems_id - som skal hive fra begge tabeller, men hold_id må ikke optræde 2 gange?
Avatar billede thb Nybegynder
29. september 2003 - 14:14 #5
myztic > Det er nemlig sådan..

Udtrækket skal altså være nogle forskellige 'hold_id' id´er

Thomas
Avatar billede dawin_dk Nybegynder
29. september 2003 - 14:21 #6
sql="select distinct holdid from traener,hold_med where medlems_id=" & session("medlems_id")

den burde virke..
Avatar billede thb Nybegynder
29. september 2003 - 14:25 #7
Den skriver..

Det angivne felt "hold_id" kan referere til mere end én tabel, der er vist i FROM-delsætningen i sætningen SQL.

thomas
Avatar billede thb Nybegynder
29. september 2003 - 14:25 #8
rettede lige holdid til hold_id for det hedder feltet.. :)
Avatar billede dawin_dk Nybegynder
29. september 2003 - 14:27 #9
sql="select distinct traener.hold_id,hold_med.hold_id from traener,hold_med where medlems_id=" & session("medlems_id")

men så har du 2 felter.. burde dog kun være det ene af dem der indeholder noget
Avatar billede myztic Nybegynder
29. september 2003 - 14:28 #10
hvis dawin's ikke virker, så er der en metode, som mange nok vil mene er lidt fyfy :P

du laver et loop hvor du bygge en SQL streng op, med Mange AND NOT... ala:

strSQL "select * from traener where medlems_id = [id]"
str2SQL = "Select * from hold_med where medlems_id = [id]"
  do while NOT strSQL.EOF
    variabel1 = str("hold_id")
    str2SQL = str2SQL & "AND NOT hold_id = variabel1"
  strSQL.movenext
  Loop
Conn.Execute(str2SQL) '// bemærk efter loopet først, når strengen er bygget færdig.

Det er lidt grim kode, men det virker.
(det hele er forresten princip-skrivning, den præcise kode går jeg ud fra at du selv kan bygge?)
Avatar billede netro Nybegynder
29. september 2003 - 14:30 #11
FY! :o)
Avatar billede thb Nybegynder
29. september 2003 - 14:30 #12
Hvad så nu... :)

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access-driver] Det angivne felt "medlems_id" kan referere til mere end én tabel, der er vist i FROM-delsætningen i sætningen SQL

Skal man så skrive hold_med.medlems_id = session... and traener.medlems.id = sessio... ???

Thomas
Avatar billede dawin_dk Nybegynder
29. september 2003 - 14:31 #13
mail mig lige databasen .. så laver jeg den query der korrekt .. damn .. er stadig træt ...

david@webgud.dk
Avatar billede myztic Nybegynder
29. september 2003 - 14:31 #14
ved det netro - skammer mig! :P
Avatar billede netro Nybegynder
29. september 2003 - 14:31 #15
hold_med.medlems_id
Avatar billede thb Nybegynder
29. september 2003 - 14:36 #16
dawin_dk > Har lige sendt en email...

Thomas
Avatar billede thb Nybegynder
29. september 2003 - 14:43 #17
myztic > Din metode vælger jo dubletterne helt fra... :(
Hvertfald lige hvad jeg kan se..

Thomas
Avatar billede myztic Nybegynder
29. september 2003 - 14:47 #18
ahh ja, den kræver så at du hiver dupletterne ud fra den anden database... altså i træner vælger du bare per medlems id.... så får du et par stykke, så bruger du min fyfy metode, til at vælge lige netop dem fra, fra det andet kald.
og så står du med dem fra træner i en hånd, og dem fra hold_med i den anden, og ingen af dem med 2 ens id'er :)

men det er som sagt meget grim kode. - men nogen gange kræver desperate situationer, desperate svar.
Avatar billede netro Nybegynder
29. september 2003 - 14:47 #19
Den burde ikke gøre ret meget, eftersom der ikke er nogle recordsæt.
Avatar billede myztic Nybegynder
29. september 2003 - 14:48 #20
det var som sagt kun princip skrivning ;) - princippet i hvordan man kunne gøre det - ikke noget egentlig kode.
Avatar billede netro Nybegynder
29. september 2003 - 14:48 #21
Ok
Avatar billede thb Nybegynder
29. september 2003 - 14:48 #22
:)
Det kan være at jeg bruger din metode, men det er først til aller sidst når jeg ikke ved hvad jeg skal gøre.. Håber på et godt svar fra dawin_dk :)

Thomas
Avatar billede myztic Nybegynder
29. september 2003 - 14:50 #23
hehe held og lykke ;)
Avatar billede netro Nybegynder
29. september 2003 - 14:51 #24
Alternativt kan du benytte en Group By:

sql="select traener.hold_id, hold_med.hold_id from traener,hold_med where medlems_id=" & session("medlems_id") & " Group By traener.hold_id, hold_med.hold_id"
Avatar billede dawin_dk Nybegynder
29. september 2003 - 14:55 #25
jeg skal lige i byen .. tilbage om nogen timer.... så kigger jeg på det...
Avatar billede thb Nybegynder
29. september 2003 - 14:58 #26
Den virkede ikke.. medlems_id kan referere til flere tabeller, og hvis jeg prøver at indsætte .. where traener.medlems_id=" & session("lv_medlem") & " and hold_med.medlems_id=" & session("lv_medlem") ..

Så udskriver den ikke de rigtige ting.. :(

Jeg smutter til træning er tilbage i aften..

Thomas
Avatar billede thb Nybegynder
29. september 2003 - 19:48 #27
Nå, er der nogle der har fundet en løsning... ??? :)

Thomas
Avatar billede thb Nybegynder
29. september 2003 - 21:32 #28
Nu har jeg fundet min egen løsning med et array.. og så brug af myztics ide..

Så er her er der nogle point.. I får lov til at dele.. :)

Thomas
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