Avatar billede pallepop Nybegynder
30. april 2003 - 16:10 Der er 8 kommentarer og
1 løsning

Select fra mange tabeller...

Davs Eksperter.
Jeg her s.. brug for noget hjælp til et lille projekt.

Jeg har nogle tabeller med 3-4 fremmednøgler (2 af nøglerne er primær nøgler i samme tabel), som jeg naturligtvis ønsker at "oversætte" til noget forståeligt, når jeg skal vise dem til brugeren.

Er der nogen som kan komme med et eksempel eller to ???
Avatar billede webfreelancer.dk Nybegynder
30. april 2003 - 16:35 #1
Kan du være lidt mere konkret?
Hvordan ser tabellerne ud?

Hilsen
webfreelancer.dk
Avatar billede janus_007 Nybegynder
30. april 2003 - 21:37 #2
Du skal bruge joins ! Se her:

SELECT t1.field1, t1.field2, t1.field3, t2.field1, t2.field2....
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.ID = t2.ID

Hvis du skal have mere specifik hjælp må du poste noget mere info som webf. siger :O)
Avatar billede pallepop Nybegynder
01. maj 2003 - 08:40 #3
Sådan ser mine tabeller ud
Tabel1 :
T1_id, T2_id, T3_id, T4_id, T4_id.....

Når jeg skal vise indholdet af tabellen vil jeg ikke have T2_id - T4_id vist, men vil vise en beskrivelse, som findes i tabellerne T2- T4.

Jeg kan altså ikke nøges med én join. Men jeg har lidt bøvl med flere join/select i ét kald.
Giver det et klare billede.
Avatar billede janus_007 Nybegynder
01. maj 2003 - 09:31 #4
SELECT T1.desc, T2.desc, T3.desc, T4.desc
FROM Tabel1
INNER JOIN T1 ON Table1.T1_id = T1.id
INNER JOIN T2 ON Table1.T2_id = T2.id
INNER JOIN T3 ON Table1.T3_id = T3.id
INNER JOIN T4 ON Table1.T4_id = T4.id

Jeg ved ikke lige hvilke felter du vil vise fra de tabeller der, men håber du kan se fremgangsmåden!
Avatar billede pallepop Nybegynder
01. maj 2003 - 09:53 #5
Det går fremad.....

men hva gør jeg når jeg har 2 henvisninger til samme tabel ?

SELECT T1.desc, T2.desc, T3.desc, T4.desc
FROM Tabel1
INNER JOIN T1 ON Table1.T1_id = T1.id
INNER JOIN T2 ON Table1.T2_id = T4.id *
INNER JOIN T3 ON Table1.T3_id = T3.id
INNER JOIN T4 ON Table1.T4_id = T4.id *
Avatar billede janus_007 Nybegynder
01. maj 2003 - 10:08 #6
Det lyder lidt sært at have 2 henvisninger til samme tabel! - Det betyder nu ikke det store. Du kan enten klare dig med 1 join på 2 henvisninger eller 2 på 2 henvisninger. Kommer an på om du vil generer det dynamisk eller du sidder og skriver det manuelt.

SELECT T1.desc, T2.desc, T3.desc, T4.desc
FROM Tabel1
INNER JOIN T1 ON Table1.T1_id = T1.id
INNER JOIN T2 ON Table1.T2_id = T4.id *
INNER JOIN T3 ON Table1.T3_id = T3.id
INNER JOIN T4 ON Table1.T4_id = T4.id *

Måske forstår jeg ikke helt problemet !! Er det et relationship imellem T2 og T4 du vil have??

SELECT T1.desc, T2.desc, T3.desc, T4.desc
FROM Tabel1
INNER JOIN T1 ON Table1.T1_id = T1.id
INNER JOIN T2 ON Table1.T2_id = T4.id *
INNER JOIN T4 ON T2.T2_id = T4.id  <--  ?? eller hvad mener du
INNER JOIN T3 ON Table1.T3_id = T3.id
INNER JOIN T4 ON Table1.T4_id = T4.id *
Avatar billede pallepop Nybegynder
01. maj 2003 - 10:30 #7
Jeg fik vist ikke rette den helt til... den skulle have set sådan ud:

SELECT T1.desc, T2.desc, T3.desc, T4.desc
FROM Tabel1
INNER JOIN T1 ON Table1.T1_id = T1.id
INNER JOIN T4 ON Table1.T4_id = T4.id *
INNER JOIN T3 ON Table1.T3_id = T3.id
INNER JOIN T4 ON Table1.T4_id = T4.id *

Jeg førsøger lige nu med med en ekstra sql hvor jeg skifter den sidste ud men det rigtigt.

De to henvisninger er fordi jeg har en "låner" og en "udlåner" som begge skal representeres i en tabel.... letter det forståelsen ?
Avatar billede janus_007 Nybegynder
01. maj 2003 - 10:34 #8
Bare glem den, det er ligegyldigt som jeg skrev :O)

SELECT T1.desc, T2.desc, T3.desc, T4.desc
FROM Tabel1
INNER JOIN T1 ON Table1.T1_id = T1.id
INNER JOIN T3 ON Table1.T3_id = T3.id
INNER JOIN T4 ON Table1.T4_id = T4.id
Avatar billede pallepop Nybegynder
01. maj 2003 - 10:39 #9
Tak for hjælpen.
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
Computerworld tilbyder specialiserede kurser i database-management

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