Não conheço bem a Query para Access e gostaria de saber se alguém poderia me ajudar...
Primeiro tenho as minhas tabelas:
1- tabela_Pais:
- id_pais
- pais
-----------------------------------------------------
2- tabela_estado:
- id_estado
- id_pais
- estado
-----------------------------------------------------
3- tabela_cidade
- id_cidade
- id_estado
- cidade
-----------------------------------------------------
4- tabela_profissiao:
- id_profissional
- profissional
- id_cidade
-----------------------------------------------------
5- tabela_ids (OBS: coloquei mais uma tabela aí chamada IDS pensando que iria facilitar o cruzamentos das minhas tabelas, não sei):
- id_pais
- id_estado
- id_cidade
- id_profissional
Ok, mas quero fazer uma pesquisa com os dados acima, não sei se preciso de todos, mas que mostre os profissionais de cada cidade. Tenho uns combos que mostra Páis = Brasil, Estado = São Paulo, Cidade = Campinas, Profissão = médico. Aí a pessoa clica em buscar e exibe os profissionais médicos daquela cidade, por exemplo.
Agora tenho as minhas request:
CODE
pais = request.form("paises")
estados = request.form("estados")
cidades = request.form("cidades")
profs = request.form("profs")
estados = request.form("estados")
cidades = request.form("cidades")
profs = request.form("profs")
Tenho então os request acima e quero fazer um inner join com 4 tabelas: pais, estado, cidade e profissão. Mas não dar certo, tentei assim: (OBS: coloquei mais uma tabela aí chamada IDS pensando que iria facilitar o cruzamentos das minhas tabelas)
CODE
SELECT ids.id_pais, paises.id_pais, paises.pais, estados.id_estado
FROM ( ids INNER JOIN
paises ON ids.id_pais = paises.id_pais)
inner join ids on estados.id_estado=ids.id_estado
WHERE estados.id_estado like “& estados &”
FROM ( ids INNER JOIN
paises ON ids.id_pais = paises.id_pais)
inner join ids on estados.id_estado=ids.id_estado
WHERE estados.id_estado like “& estados &”
Mas logo acusou erro: Erro de sintaxe na operação JOIN e assim não deu nem para cruzar as outras tabelas e fazer a minha query de pesquisa / busca.
Tem essa Query que foi mais longe, mas foi o próprio Access que fez quando a gente insere as tabelas na opção consultas do próprio Access:
CODE
SELECT ids.*, PAISES.*, ESTADOS.*, CIDADES.*, CIDADES.*, PROFISSIONAIS.*
FROM (((ids INNER JOIN PAISES ON ids.id_pais = PAISES.id_pais) INNER JOIN ESTADOS ON (ids.id_estado = ESTADOS.id_estado) AND (PAISES.id_pais = ESTADOS.id_pais)) INNER JOIN CIDADES ON (ids.id_cidade = CIDADES.id_cidade) AND (ESTADOS.id_estado = CIDADES.id_estado)) INNER JOIN PROFISSIONAIS ON CIDADES.id_cidade = PROFISSIONAIS.id_cidade
FROM (((ids INNER JOIN PAISES ON ids.id_pais = PAISES.id_pais) INNER JOIN ESTADOS ON (ids.id_estado = ESTADOS.id_estado) AND (PAISES.id_pais = ESTADOS.id_pais)) INNER JOIN CIDADES ON (ids.id_cidade = CIDADES.id_cidade) AND (ESTADOS.id_estado = CIDADES.id_estado)) INNER JOIN PROFISSIONAIS ON CIDADES.id_cidade = PROFISSIONAIS.id_cidade
Mas aí não funciona quando insiro o where com qualidade...
OBS: Tentei dessa forma também, deu erro no FROM
CODE
SELECT cidades.id_cidade, profissionais.id_cidade, estados.id_estado, cidades.id_estados, paises.id_pais, estados.id_pais
FROM paises INNER JOIN (estados INNER JOIN [( ]cidades
[INNER JOIN [( ] profissionais [INNER JOIN ...)]
ON cidades.id_cidade opercomp profissionais.id_cidade)]
ON estados.id_estado opercomp cidades.id_estados)
ON paises.id_pais opercomp estados.id_pais;
FROM paises INNER JOIN (estados INNER JOIN [( ]cidades
[INNER JOIN [( ] profissionais [INNER JOIN ...)]
ON cidades.id_cidade opercomp profissionais.id_cidade)]
ON estados.id_estado opercomp cidades.id_estados)
ON paises.id_pais opercomp estados.id_pais;
Alguém pode me ajudar a resolver essa query ou me explicar uma forma de criar isso no Access que faça o cruzamento legal das 4 ou 5 tabelas, com where para pesquisas?
Desde já agradeço!!
Marcelo