[InterBase 6] Połaczenie 2 tabeli za pomocą trzeciej

0

Wydaje mi się, że zapytanie jest prawidłowe:

select LOTY.SKAD, LOTY.DOKAD, LOTY.DATA, KLIENCI.IMIE, KLIENCI.NAZWISKO, KLIENCI.ADRES1, KLIENCI.ADRES2 
from KLIENCI, LOTY 
where KLIENCI.ID_KLIENCI = (select REZERWACJE.ID_KLIENTA from REZERWACJE) 
AND LOTY.ID_LOTY = (select REZERWACJE.ID_LOTU from REZERWACJE)

Tabelki wyglądają następująco:
REZERWACJE:
ID | ID_KLIENTA | ID_LOTY
. ^^ ^^
ID ściągane z ID ID ściągane z ID tabeli loty
tabeli klienci

LOTY:
ID_LOTY | SKAD | DOKAD | DATA

KLIENCI:
ID_KLIENCI | IMIE | NAZWISKO...

Wydaje mi się, że wszystko jest prawidłowo.
Nawet przy dodaniu pierwszego, czy pierwszych dwóch rekordów wszystko działało, później dopiero wyskoczył błąd.
Teraz z InterBase, gdy wpisze to zapytanie wyskakuje mi taki oto błąd:

Multiple rows in singleton select
Statement: select LOTY.SKAD, LOTY.DOKAD, LOTY.DATA, KLIENCI.IMIE, KLIENCI.NAZWISKO, KLIENCI.ADRES1, KLIENCI.ADRES2
from KLIENCI, LOTY
where KLIENCI.ID_KLIENCI = (select REZERWACJE.ID_KLIENTA from REZERWACJE)
AND LOTY.ID_LOTY = (select REZERWACJE.ID_LOTU from REZERWACJE)

Help!?

0

KLIENCI.ID_KLIENCI = (select REZERWACJE.ID_KLIENTA from REZERWACJE)

jeśli select zwróci Ci więcej rekordów to jak je ma porównać do pola? Albo zmień zapytanie albo zamiast = daj IN

0

Jak dam zamiast = IN, to zdublują mi się wyniki, czyli dla pierwszego ID klienta będę miał wszystkie ID lotów jakie są, dla drugiego tak samo i tak dalej i tak dalej, czyli jest źle :/

Jak dam te = to wyskakuje błąd - tak jak Misiekd napisał, jak znajdzie więcej niż jedno pole to tego nie będzie umiał porównać.

A chodzi mi o napisanie zapytania (napisze go w pseudokodzie):

Weź z tabelki REZERWACJE kolumnę ID_KLIENTA i ID_LOTY i
( ( z tabeli KLIENCI wyświetl komórki IMIE, NAZWISKO... z wiersza w którym ID jest równe ID_KLIENTA w REZERWACJE ) i
(z tabeli LOTY wyświetl komórki SKAD, DOKAD... z wiersza w któym ID jest równe ID_LOTY w REZERWACJE) )

czyli, kod powinien wyglądać tak:

select LOTY.SKAD, LOTY.DOKAD, LOTY.DATA, KLIENCI.IMIE, KLIENCI.NAZWISKO, KLIENCI.ADRES1, KLIENCI.ADRES2 from REZERWACJE, LOTY, KLIENCI
where REZERWACJE.ID_LOTU = LOTY.ID_LOTY and REZERWACJE.ID_KLIENTA = KLIENCI.ID_KLIENCI

:] Działa :D Dzięki :D

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