Am probleme la unirea a trei tabele. Funcționează bine atunci când folosesc aceeași interogare pentru alăturarea a două tabele (după eliminarea LEFT OUTER JOIN C ON B.No = C.No). Cu toate acestea, nu funcționează când folosesc trei tabele.

Aceasta este interogarea mea

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; 

Comentarii

  • Dacă vă configurați asocierile folosind Design View al proiectului de interogări Access, acesta va adăuga parantezele pe care Accesul le cere când FROM include mai multe uniri.

Răspuns

MS-Access este destul de pretențios la modul în care dorește îmbinările care trebuie formate. Adăugați paranteze:

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 ; 

Sintaxa SQL standard – și majoritatea celorlalte SGBD – nu necesită paranteze în FROM clauză, deși vi se permite să le utilizați pentru claritate.

Comentarii

  • Vă mulțumim pentru răspuns. A mers! Mulțumesc mult. Știam că întrebarea mea este corectă, doar că am ratat parantezele. Mulțumesc încă o dată. Dumnezeu să ajute! 🙂
  • Majoritatea celorlalte SGBD nu au nevoie de acestea (și pe bună dreptate).
  • Da. Este ' prima dată când folosesc MS Access. ' Sunt atât de obișnuit cu SQL Server!
  • @deppz: Știți că există o ediție SQL-Server Express? (nu cu capacitățile complete ale edițiilor superioare, dar este posibil să vă servească nevoile).
  • Da, am mai folosit asta '. Pentru această sarcină specială a trebuit să folosesc MS Access. Totuși, vă mulțumim pentru sugestie.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *