Mam problemy z połączeniem trzech tabel. Działa dobrze, gdy używam tego samego zapytania do łączenia dwóch tabel (po usunięciu LEFT OUTER JOIN C ON B.No = C.No
). Jednak nie działa, gdy używam trzech tabel.
To jest moje zapytanie
SELECT A.Name, B.Quantity, C.Quantity FROM A LEFT OUTER JOIN B ON A.ID = B.ID LEFT OUTER JOIN C ON B.No = C.No;
Komentarze
Odpowiedź
MS-Access jest raczej wybredny, jeśli chodzi o to, jak chce połączenia, które mają zostać utworzone. Dodaj nawiasy:
SELECT A.Name, B.Quantity, C.Quantity FROM ( A LEFT OUTER JOIN B ON A.ID = B.ID ) LEFT OUTER JOIN C ON B.No = C.No ;
Standardowa składnia SQL – i większość innych DBMS – nie wymaga nawiasów w FROM
klauzuli, chociaż możesz ich używać dla jasności.
Komentarze
- Dziękuję za odpowiedź. Zadziałało! Dziękuję bardzo. Wiedziałem, że moje zapytanie jest słuszne, po prostu pominięto nawias. Jeszcze raz dziękuję. Boże błogosław! 🙂
- Większość innych DBMS ich nie potrzebuje (i słusznie).
- Tak. ' to mój pierwszy raz, kiedy używam MS Access. Jestem ' przyzwyczajony do SQL Server!
- @deppz: Wiesz, że istnieje edycja SQL-Server Express? (nie z pełnymi możliwościami wyższych wersji, ale może zaspokoić Twoje potrzeby).
- Tak, ' używałem tego wcześniej. Do tego konkretnego zadania musiałem używać tylko MS Access. Jednak dzięki za sugestię.
FROM
zawiera więcej niż jedno złączenie.