Złączenie tabel nie połączonych bezpośrednio.

0

Witam,

Robię projekt uczelniany i muszę wykonać kilka zapytań. Kilka zapytań wymaga ode mnie połączanie tabel, które nie są bezpośrednio połączone związkiem. Czy da się to zrobić i jak?
W załączniku przesyłam diagram ER.

Chcę zrobić zapytanie gdzie wyświetla się dane pasażera i dodatkowo liczba bagażu rejestrowanego jaki posiada. Wyświetlenie danych pasażera - banał, zliczenie ilości bagażu - banał. Ale nie wiem jak to połączyć, skoro w warunku nie mogę podać żadnego konkretnego atrybutu bo nie są bezpośrednio połączone.

0

Sam rysunek nie mówi wszystkiego, ale ... pasażer ma rezerwację. Rezerwacja ma odprawę (biletową, celną - pewnie wiesz czy lub, czy albo). Ta odprawa ma odprawę, a ona ma odprawę bagażową. A stamtąd do bagażu.

0

Czyli robię sieć powiązań, nie wyświetlając pośrednich tabel aż dojdę do docelowej czyli bagażu? W sensie zagnieżdżam to wszystko i otrzymam strasznie długi warunek WHERE?

0

No nie przesadzajmy. Siecią bym tego nie nazwał. Mało skomplikowane powiązanie. No i nie długi WHERE, ale JOINy. Prawdopodobnie INNER. Pakowanie powiązań do WHERE to druciarstwo w tsql.

0
SELECT Pasazerowie.*, COUNT(Bagaze.NumerBagazu) AS IloscBagazu FROM Pasazerowie, Rezerwacje, OdprawyBiletowe, OdprawyBagazowe, OdprawyCelne
	INNER JOIN Bagaze
	ON 
	Bagaze.FK_NumerOdprawyBagazowej = NumerOdprawy AND Bagaze.FK_NumerOdprawyCelnej = OdprawyCelne.NumerOdprawy
	WHERE PESEL = FK_PESEL
	AND NumerRezerwacji = OdprawyBiletowe.FK_NumerRezerwacji
	AND NumerRezerwacji = OdprawyCelne.FK_NumerRezerwacji
	AND OdprawyBiletowe.NumerOdprawy = OdprawyBagazowe.FK_NumerOdprawyBiletowej
	AND OdprawyBagazowe.NumerOdprawy = Bagaze.FK_NumerOdprawyBagazowej
	AND OdprawyCelne.NumerOdprawy = Bagaze.FK_NumerOdprawyCelnej
	GROUP BY Pasazerowie.PESEL,Pasazerowie.Imie,Pasazerowie.Nazwisko, Pasazerowie.Wiek, Pasazerowie.CzyVIP

Chciałbym pominąć podawanie każdego atrybutu tabeli Pasażerowie w GROUP BY, ale jak to zrobić?

0

zamiast Pasazerowie.* podaj tylko to co Ci jest faktycznie potrzebne. A jak potrzebne jest wszystko to wszystko trzeba podać po GROUP BY

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