Ir para conteúdo
Fórum Script Brasil
  • 0

Query em tabela


doleys

Pergunta

Pessoal tenho 3 tbls:

presos (id, nome)

trocas_cela (id, cod_preso, cela_origem, cela_destino)

celas (id, nome_cela)

Estou com dificuldade na query, porque os campos cela origem e cela_destino (tbl trocas_cela) são chaves estrangeiras referentes a uma mesma tbl (celas). Aí preciso trazer o nome_cela duas vezes na query.

estou fazendo assim:

SELECT presos.nome, celas.id AS origem, celas.id AS  
FROM presos, celas, trocas_cela
WHERE trocas_cela.cela_origem=celas.id AND trocas_cela.cela_destino=celas.id AND trocas_celas.cod_preso=presos.id;

Vi q outro membro tem o mesmo problema

http://forum.imasters.uol.com.br/index.php...s-mesma-tabela/

Editado por Denis Courcy
Melhorar entendimento do código
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Oi, 'doleys'

É só acrescentar a mesma tabela novamente.

Particularmente, quando um select precisa ser escrito usando diversas tabelas, eu prefiro o uso explícito dos termos "JOIN". Eles tornam a leitura do código mais fácil. e separam o que é da cláusula WHERE do que é da cláusula JOIN.

Fazendo assim e respondendo seu questionamento, temos:

SELECT p.nome, c1.id AS origem, c2.id AS  
FROM presos p
INNER JOIN trocas_cela tc ON tc.cod_preso = p.id
INNER JOIN celas c1 ON c1.id = tc.cela_origem
INNER JOIN celas c2 ON c2.id = tc.cela_destino;

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...