Ho problemi a unire tre tabelle. Funziona bene quando utilizzo la stessa query per unire due tabelle (dopo aver rimosso LEFT OUTER JOIN C ON B.No = C.No). Tuttavia, non funziona quando utilizzo tre tabelle.

Questa è la mia query

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; 

Commenti

  • Se imposti i tuoi join utilizzando la visualizzazione struttura del designer query di Access, aggiungerà le parentesi richieste da Access quando FROM include più di un join.

Answer

MS-Access è piuttosto esigente nel modo in cui vuole le unioni da formare. Aggiungi parentesi:

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 ; 

La sintassi SQL standard e la maggior parte degli altri DBMS non richiedono parentesi nel FROM clausola, sebbene tu possa usarli per chiarezza.

Commenti

  • Grazie per la tua risposta. Ha funzionato! Grazie mille. Sapevo che la mia domanda era giusta, ho appena perso la parentesi. Grazie ancora. Che Dio vi benedica! 🙂
  • La maggior parte degli altri DBMS non ne ha bisogno (e giustamente).
  • Sì. ' è la prima volta che utilizzo MS Access. ' sono così abituato a SQL Server!
  • @deppz: Sai che esiste unedizione SQL-Server Express? (non con tutte le capacità delle edizioni superiori, ma può soddisfare le tue esigenze).
  • Sì, ' lho usato prima. Per questa particolare attività ho dovuto utilizzare solo MS Access. Grazie per il tuo suggerimento.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *