Ir para conteúdo

POWERED BY:

Arquivado

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

Marcivone

JOIN 2 campos iguais mesma tabela

Recommended Posts

Olá companheiros, estou aqui com uma duvidazinha q já bati um bocado a cabeça mais num consegui desvendar... seguinte:

 

tenho 2 tabelas

 

TB_CLUBES

==========

id

nome

 

TB_JOGOS

=========

id

data

hora

time1

time2

 

na tabela jogos, vai apenas o id do clube, e quando vou fazer um select dos jogos não to conseguindo chamar o nome dos 2 clubes com join, com 1 funfa blza, mais não consegui com os 2.

 

fiz assim e não funfou...


SELECT tb_jogos.data, tb_jogos.hora, tb_clubes.nome, tb_clubes.nome FROM tb_jogos
INNER JOIN tb_clubes on tb_jogos.time1 = tb_clube.id
INNER JOIN tb_clubes on tb_jogos.time2 = tb_clube.id
ORDER BY tb_jogos.id ASC
[/codeBOX]

 

 

Se alguem souber, dá uma dica aÊ, abraço a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vê se isso funciona:

 

SELECT jogos.`data`, jogos.`hora`, clube1.`nome`, clube2.`nome` FROM `tb_jogos` AS jogos
INNER JOIN `tb_clubes` AS clube1 ON jogos.`time1` = clube1.`id`
INNER JOIN `tb_clubes` AS clube2 ON jogos.`time2` = clube2.`id` 
ORDER BY jogos.`id` ASC

Nunca fiz 2 JOINs na mesma tabela

 

http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então e

 

SELECT jogos.`data`, jogos.`hora`, clube1.`nome`, clube2.`nome`
FROM `tb_jogos` AS jogos
INNER JOIN `tb_clubes` AS clube1 ON jogos.`time1` = clube1.`id` OR jogos.`time2` = clube2.`id`
ORDER BY jogos.`id` ASC
ou

 

SELECT jogos.`data`, jogos.`hora`, clube1.`nome`, clube2.`nome`
FROM `tb_jogos` AS jogos
INNER JOIN `tb_clubes` AS clube1 ON jogos.`time1` = clube1.`id` AND jogos.`time2` = clube2.`id`
ORDER BY jogos.`id` ASC
também não funciona?

 

No primeiro deverá reportar todos os jogos com pelo menos um dos times, no segundo código deverá reportar todos os jogos em que entram exclusivamente os dois times.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Embora o post seja antigo vou reponder para eventuais duvidas. Tá fazendo errado esse relacionamento é um N pra N então ex Tabela time e tabela jogos. um clube pode ter 1 ou mais jogos e um jogo em mais de um time então constitui um N-N que gera uma outra tabela que tem como característica uma chave primária composta das chaves das duas tabela originais + um campa que será um diferenciador exemplo data da partida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

TB_CLUBES
==========
id
nome

TB_JOGOS
=========
id
data
hora
time1
time2

 

SELECT *
FROM TB_JOGOS,TB_CLUBES MANDANTE,TB_CLUBES VISITANTE
WHERE MANDANTE.ID = TB_JOGOS.TIME1
AND   VISITANTE.ID = TB_JOGOS.TIME2

 

AJUDOU ?

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.