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
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.
FROM
cláusula inclui mais de uma junção.