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
Musisz zastosować aliasy
Robisz coś w stylu:
select l.* from loty l, port_lotniczy przyloty, port_lotniczy odloty where l.id_wylot=odloty.id and ...
Dziękuję bardzo jak wrócę z pracy to sprawdzę.
Z waszą podpowiedzią zrobiło się jaśniej.
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ć?
Podzapytania zupełnie nie są potrzebne, to co pokazałeś nawet nie wiem czy zadziała:
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
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:
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
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