Estou tendo problemas para juntar três tabelas. Funciona bem quando uso a mesma consulta para juntar duas tabelas (após remover LEFT OUTER JOIN C ON B.No = C.No). No entanto, não funciona quando eu uso três tabelas.

Esta é a minha consulta

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; 

Comentários

  • Se você configurar suas junções usando a Visualização de design do designer de consulta do Access, ele adicionará os parênteses que o Access requer quando FROM cláusula inclui mais de uma junção.

Resposta

O MS-Access é bastante exigente em como deseja as junções a serem formadas. Adicione parênteses:

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 ; 

Sintaxe SQL padrão – e a maioria dos outros SGBD – não precisa exigir parênteses no FROM , embora você tenha permissão para usá-los para maior clareza.

Comentários

  • Obrigado por sua resposta. Funcionou! Muito obrigado. Eu sabia que minha consulta estava certa, apenas perdi o parêntese. Obrigado mais uma vez. Deus abençoe! 🙂
  • A maioria dos outros SGBD não precisa deles (e com razão).
  • Sim. É ' minha primeira vez usando o MS Access. Eu ' estou tão acostumado com o SQL Server!
  • @deppz: Você sabe que existe uma edição SQL-Server Express? (não com todos os recursos das edições superiores, mas pode atender às suas necessidades).
  • Sim, ' já usei isso antes. Para esta tarefa em particular, só precisei usar o MS Access. Obrigado pela sua sugestão.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *