Avatar billede easysoft_studios Nybegynder
22. juli 2002 - 01:49 Der er 24 kommentarer og
1 løsning

hente fra 2 tabeller

Hvordan henter jeg data fra to forskellige databaser, ind i samme record? Sådan at jeg fx kan sortere dem alle samtidigt.
Avatar billede tmceu Praktikant
22. juli 2002 - 02:08 #1
Du kan bruge JOIN til at linke tabeller, eksempelvis

SELECT Navn, Adresse, ByNavn
FROM Personer P INNER JOIN Byer B ON P.PostKode = B.PostNr

Ovenstående henter navn og adress fra tabellen Personer og bynavnet fra den relaterede tabel Byer. Linket skabes mellem felterne PostKode og PostNr.
Avatar billede easysoft_studios Nybegynder
22. juli 2002 - 02:10 #2
kikker på det
Avatar billede easysoft_studios Nybegynder
22. juli 2002 - 02:30 #3
ok, men hvis jeg nu vil bestemme hvilket indhold der skal hentes, hvor jeg normalt bruger WHERE... hvordan gør jeg lige det?
Avatar billede mccannon Nybegynder
22. juli 2002 - 04:34 #4
Strkode = "8000"
sql = "SELECT Navn, Adresse, ByNavnFROM Personer P INNER JOIN Byer B ON P.PostKode = B.PostNr"
sql = sql & " WHERE P.Postkode ='" & Strkode & "'"
Avatar billede tmceu Praktikant
22. juli 2002 - 14:01 #5
Som det er vist, smider du bare din WHERE clause på statementet. Du kan fortsat bruge GROUP BY, ORDER BY, WHERE o.s.v. som normalt, det er blot din FROM der ændrer sig en smule, når du bruger JOIN.
Avatar billede easysoft_studios Nybegynder
22. juli 2002 - 17:59 #6
Jeg bruger den her, men der bliver ikke skrevet en eneste linie:

                  strSQL = "SELECT * FROM incomming P INNER JOIN outgoing B ON P.mailID = B.mailID WHERE (P.mailReciver = '" & Session("Brugernavn") & "' AND P.mailDeleted = TRUE) OR (B.mailSender = '" & Session("Brugernavn") & "' AND B.mailDeleted = TRUE)"
                  set rs = MailConn.Execute(strSQL)

Jeg har også prøvet med AND i stedet for OR i WHERE statement, men ingen forskel.

Jeg sætter det ind på siden med fx <%=rs("mailSender")%>, skal det være noget andet nu?
Avatar billede easysoft_studios Nybegynder
22. juli 2002 - 18:01 #7
det skal lige siges at mine to tabeller her, er fuldstændig idendiske. Dog kan indholdet varigere, da der skal bruges en til de udgående og indgående meddelser. Så fx hvis en bruger sletter en meddelse, så har den anden, stadig meddelsen, fordi det er ham der er afsender...
Avatar billede tmceu Praktikant
22. juli 2002 - 18:07 #8
MailID kunne lyde som et autonummer? Hvis det er tilfældet, vil du næppe finde nogen match på din JOIN, da tabellerne vel næppe er synkrone på ID niveau ?
Avatar billede easysoft_studios Nybegynder
22. juli 2002 - 18:11 #9
det er rigtigt... men hvad fa**** skal jeg så bruge for at joine dem?
skal de to værdier der joiner være idendiske, for så får jeg et problem tror jeg...
Avatar billede tmceu Praktikant
22. juli 2002 - 18:34 #10
Ja, du skal joine på 2 identiske værdier som kan binde tabellerne sammen. I eksemplet er det postnummer som er identisk i de 2 tabeller.
Avatar billede easysoft_studios Nybegynder
22. juli 2002 - 19:25 #11
kunne jeg så ikke i principet ikke lave en dummy-kollone med værdien "1234" i alle entries? og bruge den til at linke
Avatar billede tmceu Praktikant
22. juli 2002 - 20:16 #12
Det ville ikke rigtig give nogen mening, da alle så ville passe med alle. Nu håber jeg ikke du tager det som en fornærmelse, men det lyder som om det kunne være en god ide at læse lidt teori om normalisering og denormalisering.
Avatar billede easysoft_studios Nybegynder
22. juli 2002 - 20:20 #13
så dur dette princip ikke til mine tabeller. Jeg finder bare en anden løsning, men det virker lidt underligt at man ikke kan tage alle entries i en tabel, og så at sige putte dem ind i slutningen af den anden tabel...
det med normalisering og denormalisering... hm det må jeg få kikket på ;)
Avatar billede tmceu Praktikant
22. juli 2002 - 20:53 #14
Det kan du også, men det er 2 forskellige ting du spørger om. Først spurgte du om at få dem ind i samme record = JOIN, nu spørger du om at få smidt dem i enden af hinanden = UNION.

Syntaksen for UNION:

SELECT * FROM Tabel1
UNION
SELECT * FROM Tabel2

Hvis du bruger MySQL, er UNION først supporteret i ver. 4.
Avatar billede easysoft_studios Nybegynder
22. juli 2002 - 20:55 #15
sorry, så skulle jeg måske lige have læst ordlisten inden jeg skriver noget ... :)
Avatar billede tmceu Praktikant
22. juli 2002 - 21:00 #16
Det går nok :-)
Avatar billede easysoft_studios Nybegynder
22. juli 2002 - 21:07 #17
af ren nysgerighed: er du fridtidsprogrammør eller faglært, når du ved så meget om programmering?
Avatar billede tmceu Praktikant
22. juli 2002 - 21:12 #18
Nok lidt af en klon mellem de to. Jeg er som udgangspunkt selvlært, men har arbejdet på fuld tid med IT siden 1994, de sidste 5 år med fokus på databaser og Internet programmering. Meget ny viden tilegner jeg mig stadig ved selvstudie (primært bøger) og det bliver efterhånden nemmere at lære noget nyt, når man kan relatere det til noget man har lavet tidligere. Men jeg når også op på 5-10 profesionelle kurser om året.
Avatar billede easysoft_studios Nybegynder
22. juli 2002 - 21:23 #19
jeg er selv i gang med at uddanne mig i den retning, så derfor er det meget spændende at høre fra folk der har været igennem det, og hvilke erfaringer de har gjort sig og sådan. Og det kunne jo være fedt at blive god mens man er ung, så man på uddandelses stedet er "lidt foran". Men jeg ved der er massere at lærer, så jeg arbejder næsten ikke meget andet lige for tiden...
Avatar billede tmceu Praktikant
22. juli 2002 - 21:48 #20
Det sjove ved IT er, at de fleste der beskæftiger sig med det professionelt, har en ekstrem interesse og mange føler at de har gjort deres hobby til en levevej. Hvis interessen og evnerne er der, skal det nok gå. Men du må ikke forvente at kunne "bringe dig foran" nu og så tage en slapper i nogle år, for så er du altså ikke god ret længe. Jeg har desværre set alt for mange gode kolleger og eksterne konsulenter gå fra ekstremt gode til elendige, for til sidst at se dem blive fyret, af den simple årsag at de levede på fordums kunnen for længe.

Hvilken uddannelse er det?
Avatar billede easysoft_studios Nybegynder
23. juli 2002 - 00:44 #21
Jeg ved jeg skal passe på. For jeg oplever tit, at nu synes man, at man har lavet en kanont stykke arbejde og "de bare kan komme an".  Men så tænker man lige engang til, og finder lige ud af at det man har lavet, ikke er så supergodt, som man selv troede.

Jeg stræber efter at blive datanom. Nu tager jeg lige 3 år på HTX og ser hvad tiden bringer, men det er uden tvivl indenfor IT og EDB jeg vil arbejde. Om det så lige programmering, kommer an på tiden tror jeg.
Avatar billede easysoft_studios Nybegynder
23. juli 2002 - 01:01 #22
Hmm.. har stadig lidt problemer med scriptet:

Det jeg vil er at tag disse to SQL'er:

"SELECT * FROM incomming WHERE mailReciver = '" & Session("Brugernavn") & "' AND mailDeleted = TRUE"

og

"SELECT * FROM outgoing WHERE mailSender = '" & Session("BrugerIsOK") & "' AND mailDeleted = TRUE"

Hvis jeg ligger de to samme bliver det noget rigtig rod, for så vil den tage både mailReciver og mailSender i begge tabeller.

Kan man ikke ligesom i det første script, give incomming navnet P og outgoing navnet B og så kalde fx P.mailReciver og B.mailSender?
Avatar billede easysoft_studios Nybegynder
23. juli 2002 - 01:06 #23
strSQL = "SELECT * FROM incomming WHERE mailReciver = '" & Session("BrugerIsOK") & "' AND mailDeleted = TRUE UNION SELECT * FROM outgoing WHERE mailSender = '" & Session("BrugerIsOK") & "' AND mailDeleted = TRUE

Jeg tror squ det gør det... :)
Avatar billede easysoft_studios Nybegynder
23. juli 2002 - 01:13 #24
Det er bare fedt. Takker for hjælpen, og de gode råd.

Jeg sørgte efter UNION på www.experts-exchange.com og vupti i første forsøg! Endnu gang tak for hjælpen.

Med al respekt giver jeg pointene til tmceu, dels fordi han var først, og han fulgte op og gav mig løsningen.
Avatar billede tmceu Praktikant
23. juli 2002 - 09:48 #25
Det var så lidt :-)

Jeg læser selv Datanom i fritiden, men er løbet ind i det problem, at de fleste gruppe 2 fag ikke oprettes i mit område (Vejle). Så jeg er begyndt at lede i Århus og Odense.
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