Dwa klucze obce do tej samej tabeli

0

Witam, jestem w trakcie nauki SQLa, a w tym momencie JOINów i nieprzyjemnie utkwiłem na pewnym zagadnieniu. Uprośćmy je do najważniejszego:

W bazie znajdują się dwie tabele:

  1. Osoby: IDosoby, imie, nazwisko, wiek
  2. Znajomości: IDosoby1, IDosoby2 (czyli identyfikatory osób, które się znają)

W tabeli wynikowej chciałbym uzyskać: IDosoby1, wiek osoby z IDosoby1, IDosoby2, wiek osoby z IDosoby2
W przypadku jednej pary jest prosto:

SELECT IDosoby1, wiek FROM Znajomości JOIN Osoby ON (IDosoby1 = IDosoby)

Problem stwarza mi to, że w jedna tabeli znajduje się więcej niż jedno odwołanie do drugiej. Gdy analogicznie dołączę kolejnym JOINem "drugą część" wynikowej tabeli, wynik jest inny od oczekiwanego.

1

Nie rozumiem pytania. Źle joinujesz najwyraźniej

SELECT osoby1.id, osoby1.wiek, osoby2.id, osoby2.wiek 
FROM Znajomości 
inner join Osoby as osoby1 on osoby1.id = Znajomosci.idosoby1 
inner join Osoby as osoby2 on osoby2.id = Znajomosci.idosoby2

?

0
Shalom napisał(a):

Źle joinujesz najwyraźniej

To prawda, pomieszałem z aliasami i silnik nie mógł sie domyślić o co chodzi w moim joinie. Dziękuję za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1