Select id 2x z tej samej tabeli

Odpowiedz Nowy wątek
2018-11-06 08:49
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

Pozostało 580 znaków

2018-11-06 09:11
Uczynny Szewc
1

Musisz zastosować aliasy

Pozostało 580 znaków

2018-11-06 09:14
3

Robisz coś w stylu:

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

@yarel od 1992 r. (SQL ANSI 92) tabele łączymy przez JOIN. - Marcin.Miga 2018-11-06 11:24
@Marcin.Miga: święta prawda i kolega powinien uczyć się notacji z JOIN :) Ja piszę tak z przyzwyczajenia i lenistwa ;P Stosuję chyba tylko do OUTER JOINÓW. - yarel 2018-11-06 11:36

Pozostało 580 znaków

2018-11-06 11:01
0

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

Pozostało 580 znaków

2018-11-07 06:52
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ć?

Pozostało 580 znaków

2018-11-07 07:25
2

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 2018-11-07 08:23

Pozostało 580 znaków

2018-11-07 08:55
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:

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
edytowany 1x, ostatnio: Panczo, 2018-11-07 09:04

Pozostało 580 znaków

2018-11-07 09:09
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

edytowany 1x, ostatnio: Adam Jadczak, 2018-11-07 09:10

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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