Problemas com Inner Join no SQL
09/04/2015
0
minha duvida é o seguinte, eu tenho 2 tabelas tabelaa: codigoa(chave primaria), time(varchar) tabelab: codigob(chave primaria), timecasa(chave estrangeira), timevisitante(chave estrangeira), placarcasa(int),placarvisitante(int).
então timecasa e timevisitante fica relacionado (são chaves estrangeiras) a chave primaria codigo da tabela A, ai quanto eu coloco para fazer o inner join e me mostra os cadastro certo.
SELECT tebelaa.codigoa,tebelaa.time, tabelab.timecasa, tabelab.placarcasa, tabelab.placarvisitante, tabelab.timevisitante, tebelaa.time, tebelaa.codigoa FROM tebelaa INNER JOIN tabelab ON tebelaa.codigoa=tabelab.timevisitante
então não vai porque eu quero que ele me mostre o nome do time que é o campo time do banco, mais quando eu coloco este inner join ele me mostra do nome certo com codigo dele?
como é um confronto um time X joga contra vários times, mais o banco não aceita eu cadastrar ele varias vez contra outro time ja cadastrados, como resolvo isso?
então são esta duas perguntas:
resolver como mostrar inner join com 2 chaves estrangeiras de uma tabela ligado na primaria da outra tabela? como é um confronto um time X joga contra vários times, mais o banco não aceita eu cadastrar ele varias vez contra outro time ja cadastrados, como resolvo isso?
Estou usando o WampServer 1.6.1.33
Imagem a baixo demostra o que estou falando
[img:descricao=aqui mostra a primeira tabela com todos os campos cadstrados]http://arquivo.devmedia.com.br/forum/imagem/423816-20150409-182404.png[/img]
[img:descricao=Aqui mostra 2 tabela com todos os campos cadastrado e chamando a chave estrangeira e não consigo cadastrar mais de uma fez o mesmo time na chave estrangeira]http://arquivo.devmedia.com.br/forum/imagem/423816-20150409-182519.png[/img]
[img:descricao=Problema: a coluna codigoa e time da esquerda espelha a da direita e isso não pode, o certo era que a da esquerda chame os time do seus codigoa certo e da direita mesma coisa chame os certos]http://arquivo.devmedia.com.br/forum/imagem/423816-20150409-182651.png[/img]
Fernando Fred
Post mais votado
09/04/2015
SELECT tebelaa_casa.codigoa,tebelaa_casa.time, tabelab.timecasa, tabelab.placarcasa, tabelab.placarvisitante, tabelab.timevisitante, tebelaa_visitante.time, tebelaa_visitante.codigoa FROM tabelab INNER JOIN tebelaa_visitante ON tebelaa_visitante.codigoa=tabelab.timevisitante INNER JOIN tebelaa_casa ON tebelaa_casa.codigoa=tabelab.timecasa
A sua segunda pergunta não entendi muito bem. Em que tabela você não consegue inserir o mesmo time ? Dê exemplos com operações de SQL.
Ronaldo Lanhellas
Mais Posts
14/04/2015
Fernando Fred
SELECT b.timecasa, a2.time,b.placarcasa, b.placarvisitante, b.timevisitante, a1.time FROM tabelab b INNER JOIN tebelaa a1 ON a1.codigoa=b.timevisitante INNER JOIN tebelaa a2 ON a2.codigoa=b.timecasa
Funcionou Obrigado cara
agora me explica como você fez? como você chegou a esta conclusão?
obrigado de novo
14/04/2015
Fernando Fred
b.placarvisitante, b.timevisitante, a1.time
FROM tabelab b INNER JOIN tebelaa a1 ON a1.codigoa=b.timevisitante
INNER JOIN tebelaa a2 ON a2.codigoa=b.timecasa
o que quer disser tebela a1 e tebelaa a2 a1 e a2 é como se fosse variáveis para o banco?
deixa eu ser mais chato do que ja estou sendo
tem como ao investe de na coluna timecasa e timevisitente a parece o código que ele se relaciona aparecer o nome do time
14/04/2015
Marcos P
Sobre sua primeira pergunta : são duas chaves estrangeiras na tabelab, portanto, dois "inner joins" diferentes para a tabela de times ( uma para cada chave estrangeira )
Quanto a sua segunda pergunta : já está aparecendo o nome do clube... b.timecasa x a2.time e b.timevisitante x a1.time.
Ok ?!?
14/04/2015
Fernando Fred
é que sou novo na programação e ja me deram esta missão de fez uma pagina na web que faz estatística de confronto entre times e primeiro eu precisava cadastrar estes confrontos e depois mostra que é onde vem esta pergunta do fórum que eu criei
SELECT a2.time, b.timecasa ,b.placarcasa,
b.placarvisitante, b.timevisitante, a1.time
FROM tabelab b INNER JOIN tebelaa a1 ON a1.codigoa=b.timevisitante
INNER JOIN tebelaa a2 ON a2.codigoa=b.timecasa
o que quer disser tebela a1 e tebelaa a2 a1 e a2 é como se fosse variáveis para o banco?
14/04/2015
Marcos P
Clique aqui para fazer login e interagir na Comunidade :)