Jag har 2 tabeller med 3 respektive 1 fält: Du nämner inget om vilken databas du använder, det saknas också en information om vad primärnyckeln i personer heter, men men... Om det är så att fältet förnamn finns i tabellen personer. Bör du lägga till en räknare som primärnyckel och länka mot den istället. Tack anders oxå emn varför är det lämpligare med JOIN? Underfråger är ineffektiva. Efersom databas motorn slår upp dem för varje post. Med en join jör det en jämförelse mellan indexen i en operation. Därför blir en Join mindre resurskrävande och snabbare. Använd aldrig beskrivande fält som nycklar i en tabell. En nyckel i en tabell skall vara skild från att beskriva information som tabellen innehåller. Nyckeln bör leva "sitt eget liv". Vad händer om du har flera personer med samma namn ? ehhh...Dubbla sekundärnycklar till samma tabell
Prylar:
--------
Namn
Tillverkad_av
Godkänd_av
Personer:
-----------
Förnamn
Fälten: Tillverkad_av, Godkänd_av är sekundärnycklar som refererar till varsin person (som kan vara samma) i Person-tabellen.
Jag vill lista alla prylar och visa Namn, Tillverkad_av->Namn, Godkänd_av->Namn
Hur ser SQL-frågan ut?Sv: Dubbla sekundärnycklar till samma tabell
Select Pr.Namn, (Select Förnamn From Personer Where Pr.Tillverkad_av = Personer.primärnyckel) As Tillverkare, (Select Förnamn From Personer Where Pr.Godkänd_av = Personer.primärnyckel) As Godkännare From Prylar Pr
Det där (^^^^^) är ett sätt att göra på...Sv: Dubbla sekundärnycklar till samma tabell
Exempel:
Personer
PersonId PersonFörNamn
1 Patrik
2 Åke
3 Nisse
Prylar
Namn Tillverkad_av Godkänd_av
Bil 1 2
TV 1 2
PC 2 3
I detta fallet är nog två Joins mer lämpligt.
SELECT Prylar.Namn, TP.Förnamn As Tillverkare, GP.Förnamn As Godkännare
FROM (Prylar LEFT JOIN Personer As TP ON Prylar.Tillverkad_av = TP.PersonId) LEFT JOIN Personer As GP ON Prylar.Godkänd_av = GP.PersonIdSELECT Help WHERE it_is_needed FROM Pellesoft AS fast AS Possible :o)
tackar, precis vad jag behövde
Jo du har rätt, jag hade glömt primärnycklarna i mitt exempel
tackSv: Dubbla sekundärnycklar till samma tabell
Var fick du TP & GP ifrån förresten?Sv: Dubbla sekundärnycklar till samma tabell
Eftersom jag använder samma tabell två gånger i from satsen ger jag dem olika alias:
Personer As TP
Personer As GP Sv: Dubbla sekundärnycklar till samma tabell
http://www.gorep.se/selection/selection_download.htmSv: Dubbla sekundärnycklar till samma tabell
Det är inte heller någon som har tänkt använda nårga beskrivande fält som nycklar. Hade du läst resten av inläggen hade det klarnat för dig. Men tackar för omtanken i alla fall