Wpis z mikrobloga

Hej Mireczki mam ciekawy (dla mnie przynajmniej) problem i nie wiem jak się z nim uporać. Mam tabelę lotniska która przechowuje jakieśtam dane o nich i mogę się odwołać do rekordu po jego id. Problem polega na tym, że tabela loty ma kolumny idlotniskastart i idlotniskakoniec. Piszę teraz kwerendę aby zamiast id wyświetlić ich nazwy lecz nie mam pojęcia kompletnie jak się uporać tutaj z powtarzaniem się rekordów - przy pozostałych tabelach mogę porównać id do siebie, ale tutaj gdy to zrobię to dostanę tylko loty o tym samym id lotniska na starcie i końcu. Nawet nie wiem dobrze czego szukać w google żeby to ogarnąć. Jakieś pomysły?
#sql
Pobierz
źródło: comment_1589810176qYtLz8gGnrEdbcp61X9Uuh.jpg
  • 9
@sinu0: @hakwwy: tak też pisali w jedynym ledwo powiązanym poście na SO, ale w sumie to nigdy nawet na zajęciach nie użyłem tego, jakkolwiek dziwnie to brzmi. Cóż, chyba czas to ogarnąć
@Gamgee

Bys dal tekst a nie obrazek to byśmy bardziej pomogli

Select * from loty
Left join lotniska as a on a.idlotniska = loty.idlotniskastart
Left join lotniska as b on b.id
lotniska = loty.idlotniskakoniec
@Gamgee: musisz dwa razy dołączyć tabelę lotnisko, raz po id lotniska startowego, drugi raz po id lotniska lądowania; oczywiście musisz za kazdym razem dac tabeli inne oznaczenie

Ty łączysz implicit (przestań to robić), więc:

select * from

lot l, lotnisko lots, lotnisko lote

where
1=1
and l.idlotniskastart = lots.id
and l.idlotniskaend = lote.id

-------------------------

Przejdź na normalne joiny:

select * from
lot l,
join lotnisko lots on lots.id=l.lidlotniskostart
join lotnisko lote