Select id 2x z tej samej tabeli

Odpowiedz Nowy wątek
2018-11-06 08:49

Rejestracja: 1 rok temu

Ostatnio: 3 miesiące temu

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

Uczynny Szewc
2018-11-06 09:11
Uczynny Szewc
1

Musisz zastosować aliasy

Pozostało 580 znaków

2018-11-06 09:14

Rejestracja: 5 lat temu

Ostatnio: 49 sekund temu

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

Rejestracja: 1 rok temu

Ostatnio: 3 miesiące temu

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

Rejestracja: 1 rok temu

Ostatnio: 3 miesiące temu

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

Rejestracja: 17 lat temu

Ostatnio: 35 minut temu

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

Rejestracja: 17 lat temu

Ostatnio: 35 minut temu

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

Rejestracja: 1 rok temu

Ostatnio: 3 miesiące temu

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

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