Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Renato.rlf

Join

Recommended Posts

Olá,

Estou tentando fazer uma consulta mas não está retornando nada.

 

Minhas tabelas:

- Torneio(Id_torneio, descricao, ...)

 

- Resultado

Id_resultado(Id_resultado, data, ..., Id_torneio)

 

Select que não retorna nada:

SELECT * FROM "Resultado" AS r  JOIN "Torneio" AS t 
ON 'r.Id_torneio' = 't.Id_torneio';

 

Mas se eu faço Natural Join retorna

SELECT * FROM "Resultado" NATURAL JOIN "Torneio"

 

O que está errado na query que não está retornando nada?

 

Obs: nas tabelas contém informações que o Id_torneio são iguais

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo,

 

 

A sintaxe certa é:

 

SELECT * FROM "Resultado" AS r JOIN "Torneio" AS t

ON r.Id_torneio = t.Id_torneio

 

você havia feito:

 

SELECT * FROM "Resultado" AS r JOIN "Torneio" AS t

ON 'r.Id_torneio' = 't.Id_torneio';

 

Acontece que o quote (') é identificador padrão para texto em SQL, portanto é como se você tivesse escrito o SQL (no PostgreSQL):

 

SELECT * FROM "Resultado" AS r JOIN "Torneio" AS t

ON 'BANANA' = 'LARANJA';

 

Assim não voltaria resultados mesmo...

 

Outra dica é sempre usar nomes de tabela e campo em mínusculas e sem caracteres especiais, pois daí não precisa mencionar as tabelas entre "" no SQL.

 

 

Espero ter ajudado, abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda e também pela dica, não sabia desse lance das letras maiúsculas nas tabelas. Bem melhor digitar as querys sem colocar "".

 

Eu tinha conseguido também utilizando "r"."Id_torneio" = "t"."Id_Torneio"

 

Olá amigo,

 

 

A sintaxe certa é:

 

SELECT * FROM "Resultado" AS r JOIN "Torneio" AS t

ON r.Id_torneio = t.Id_torneio

 

você havia feito:

 

SELECT * FROM "Resultado" AS r JOIN "Torneio" AS t

ON 'r.Id_torneio' = 't.Id_torneio';

 

Acontece que o quote (') é identificador padrão para texto em SQL, portanto é como se você tivesse escrito o SQL (no PostgreSQL):

 

SELECT * FROM "Resultado" AS r JOIN "Torneio" AS t

ON 'BANANA' = 'LARANJA';

 

Assim não voltaria resultados mesmo...

 

Outra dica é sempre usar nomes de tabela e campo em mínusculas e sem caracteres especiais, pois daí não precisa mencionar as tabelas entre "" no SQL.

 

 

Espero ter ajudado, abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.