[RESOLVIDO] LEFT JOIN .. qual o erro na minha query?
16 respostas
C
clauslk
nao uso muitos joins porem nessa consulta eh extremamente necessario… porem esta acusando erro de sintaxe… alguem consegue identificar algum erro no trecho ai em baixo?
from temp, cidades INNER JOIN clientes ON ( cidades.codigo_da_cidade = clientes.codigo_da_cidade) LEFT JOIN pedidos ON (Pedidos.codigo_do_cliente = clientes.codigo_do_cliente)
resumindo o que quero fazer… :
fazer uma lista dos clientes da cidade que eu mando no temp… e se existir pedido para aquele cliente… trazer o valor do ultimo pedido e a data
só para confirmar, isso dai é sql que você está colando né?? não é hql não né?
poste sua query completa, não só uma parte dela… e se possivel a estrutura das tabelas envolvidas.
romarcio
Um erra acho que é depois do FROM. Você deve colocar uma unica tabela e colocou duas (temp e cidades)
E outro pode ser os parenteses, não tenho certeza, mas acho que eles não devem ser usados.
leoramos
Considerando que tu não colou o select, a pergunta faz sentido: tá tentando fazer isso em HQL? Parece SQL, mas numa dessas…
Confere teus alias, também.
Que “temp” eh aquela?
Tua pergunta e a explicação não estão muito boas… especifica mais, cara.
Abraço!
C
clauslk
coloquei a query completa lah em cima agora… e mais alguns detalhes… abrass
rodrigocolasso
Clauslk,
trabalhar com join é uma tarefa muito fácil, facilita mais ainda saber o que você realmente quer.
Será que você poderia ser mais claro?
Quando você coloca “FROM temp, cidades”, o que você quer dizer? Esse trecho é como você faria um join antigamente (ou seja nào é mais usado).
Posta o que você quer certinho que a gente te ajuda.
P
Puka
fazer uma lista dos clientes da cidade que eu mando no temp… e se existir pedido para aquele cliente… trazer o valor do ultimo pedido e a data
cara eu estava pesquisando como usar os joins…e entendi mais ou menos como funciona porem esta acusando um erro ainda … dizendo ‘sem suporte a expressao de associacao’ … mas acredito que seja da ferramenta que estou usando… no caso para este projeto é access… veja a sql abaixo e me diga se encontra algo de errado… acredito q agora esta mais clara pra vcs…
from temp
INNER JOIN cidades ON (cidades.codigo_da_cidade = temp.filtra_por_cidade)
INNER JOIN clientes ON (clientes.codigo_da_cidade = cidades.codigo_da_cidade)
LEFT JOIN pedidos ON (pedidos.codigo_do_cliente = clientes.codigo_do_cliente)
C
clauslk
rodrigocolasso:
Blz, eu só mudaria isso:
from temp
INNER JOIN cidades ON (cidades.codigo_da_cidade = temp.filtra_por_cidade)
INNER JOIN clientes ON (clientes.codigo_da_cidade = cidades.codigo_da_cidade)
LEFT JOIN pedidos ON (pedidos.codigo_do_cliente = clientes.codigo_do_cliente)
porem desta forma nao funciona … acusa falta de operador… na query q eu postei antes… os parenteses que juntam os dois inner joins para usar como result set do left join… nao é isso?
rodrigocolasso
Ta pode colocar os parenteses nos inner join, mas deveria funcionar…