Select id 2x z tej samej tabeli

Select id 2x z tej samej tabeli
Adam Jadczak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Hej nie mogę znaleźć czy na forum był poruszany temat więc wstawiam.
Taki problem ,że w tabeli loty jest krotka id_wylot i id_przylot obydwie korzystają z tabeli port_lotniczy .
Moje pytanie jak wyciągnąć dane o miejscu wylotu i przylotu ? Nie mogę skręcić warunku...:(
Relacje są pociagniete od port_lotniczy do lot dwa razy

  • Rejestracja: dni
  • Ostatnio: dni
1

Musisz zastosować aliasy

YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2384
3

Robisz coś w stylu:

select l.* from loty l, port_lotniczy przyloty, port_lotniczy odloty where l.id_wylot=odloty.id and ...

Adam Jadczak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Dziękuję bardzo jak wrócę z pracy to sprawdzę.
Z waszą podpowiedzią zrobiło się jaśniej.

Adam Jadczak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Hej udało się ale zastosowałem podzapytania w nawiasach mianowicie tak:
Select
lot.id_lot,
(Port_lotniczy.nazwa) as 'wylot',
(Select
Port_lotniczy.nazwa
From Lot,Port_lotniczy
Where Lot.id_port_lotniczy=Port_lotniczy.id_port_lotniczy) as 'przylot'
From Lot,Port_lotniczy
Where Lot.id_port_lotniczy=Port_lotniczy.id_port_lotniczy

Co o tym sądzicie? Można to jakoś zoptymalizować?

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3891
2

Podzapytania zupełnie nie są potrzebne, to co pokazałeś nawet nie wiem czy zadziała:

Kopiuj
select
*
from
  loty l
  inner join port_lotniczy p on p.id = l.id_przylot
  inner join port_lotniczy w on w.id = l.id_wylot
PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3891
1

Porty lotnicze tj. Miasta są w jednej tabeli. Nie ma tabeli przylotu i wylotu to jest tylko nazwa krotki w tabeli lot. Twój select zwróci wartości id a ja bym chciał nazwy miast. Ale spróbuję na innerach może będzie lepiej:) ale to wieczorem.

@Adam Jadczak nie do końca, to zapytanie zwróci ci wszystko co potrzebne. Jako, że nie podałeś struktury to powinieneś celować w coś takiego:

Kopiuj
SELECT
 l.id_lot
 ,w.nazwa Wylot
 ,p.nazwa Przylot
FROM
  loty l
  INNER JOIN port_lotniczy p ON p.id_port_lotniczy = l.id_przylot
  INNER JOIN port_lotniczy w ON w.id_port_lotniczy = l.id_wylot
Adam Jadczak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Ok , w sumie to powinienem zacząć od tego aby przedstawić ta swoją bazę wrzucę wieczorem link aby kto chciał to sobie zobaczył w MS SQL i listę insertów.
@Panczo dzieki za wskazowki sprobuje tak jak piszesz

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.