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

  • Jeśli skonfigurujesz sprzężenia za pomocą widoku projektu projektanta zapytań programu Access, doda on nawiasy wymagane przez program Access, gdy FROM zawiera więcej niż jedno złączenie.

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ę.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *