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
09/04/2015
Ronaldo Lanhellas
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.
09/04/2015
Fernando Fred
então tem 3 tabelas certo?
com 2 inner join certo deste jeito eu nunca fiz
em relação a 2 pergunta eu já resolvi obrigado pela preocupação e por me ajudar
é que o seguinte estou fazendo um programa para web que faz confronto entre times por isso que preciso deste inner join funcionando, ai meu outro problema que irei cria outro fórum sera sobre cadastrar combobox e textfild do php para ir no banco e depois mostrar na outro pagina o resultado usando este inner join. que pegara os placares e no dos time para mostrar os confrontos entre eles.
Obrigado de novo Ronaldo Lanhellas
09/04/2015
Ronaldo Lanhellas
09/04/2015
Ronaldo Lanhellas
10/04/2015
Fernando Fred
o que eu faço
11/04/2015
Marcos P
Crie suas tabelas no Fiddle, insira alguns registros de teste e depois avise, para que possamos simular suas consultas por lá !
Suas definições não ficaram muito claras e, do jeito que está, teremos dificuldades em lhe auxiliar.
Vou acompanhar esse post.
Fico no aguardo...
13/04/2015
Fernando Fred
Crie suas tabelas no Fiddle, insira alguns registros de teste e depois avise, para que possamos simular suas consultas por lá !
Suas definições não ficaram muito claras e, do jeito que está, teremos dificuldades em lhe auxiliar.
Vou acompanhar esse post.
Fico no aguardo...
eu nunca usei este Fiddle
não sei como usar
13/04/2015
Marcos P
Na janela da esquerda crie a estrutura das tabelas.
Depois de criada as tabelas, insira os registros de exemplo na janela da direita !
Veja um exemplo de um material que preparei lá... Exemplo Fiddle
Abra uma nova janela e tente !
13/04/2015
Fernando Fred
Na janela da esquerda crie a estrutura das tabelas.
Depois de criada as tabelas, insira os registros de exemplo na janela da direita !
Veja um exemplo de um material que preparei lá... Exemplo Fiddle
Abra uma nova janela e tente !
ok entendi olha que é fácil mesmo em bom aqui esta o link da minha duvida [url]http://sqlfiddle.com/#!9/fad5c/1/0[/url]
na 2 coluna que a é do time tem que estar relacionado ao timecasa igual esta na 5 coluna que tambem é de time onde esta certinho o time com o time visitante
e este é o que o Ronaldo estava me ajudando [url]http://sqlfiddle.com/#!9/fad5c/2[/url]
e agora como faço? como resolvo este problema
13/04/2015
Marcos P
Que frase, hein ?!?
A coluna 2 é "time" e a coluna 5 é "timevisitante"... é isso ?
O relacionamento que está feito é : tabelaa.codigoa=tabelab.timevisitante... ou seja, o time da "tabelaa" é o time visitante na "tabelab".
Agora, você precisa fazer o relacionamento de tabelaa.codigoa=tabelab.codigob ?
Na mesma query ?
Em caso, positivo... que sentido tem isso se já ocorreu o relacionamento da tabelaa.codigoa=tabelab.timevisitante ?
13/04/2015
Marcos P
SELECT a.codigoa, a.time, b.timecasa, b.placarcasa, b.placarvisitante, b.timevisitante, b.codigob FROM tebelaa a INNER JOIN tabelab b ON a.codigoa=b.timevisitante UNION ALL SELECT a.codigoa, a.time, b.timecasa, b.placarcasa, b.placarvisitante, b.timevisitante,b.codigob FROM tebelaa a INNER JOIN tabelab b ON a.codigoa=b.codigob
13/04/2015
Fernando Fred
Que frase, hein ?!?
A coluna 2 é "time" e a coluna 5 é "timevisitante"... é isso ?
O relacionamento que está feito é : tabelaa.codigoa=tabelab.timevisitante... ou seja, o time da "tabelaa" é o time visitante na "tabelab".
Agora, você precisa fazer o relacionamento de tabelaa.codigoa=tabelab.codigob ?
Na mesma query ?
Em caso, positivo... que sentido tem isso se já ocorreu o relacionamento da tabelaa.codigoa=tabelab.timevisitante ?
Me desculpe eu errei a coluna é a 7 que é coluna do time que relaciona com timevisitante
13/04/2015
Marcos P
Tenho mais 15 minutos aqui... testa lá !
13/04/2015
Fernando Fred
SELECT a.codigoa, a.time, b.timecasa, b.placarcasa, b.placarvisitante, b.timevisitante, b.codigob FROM tebelaa a INNER JOIN tabelab b ON a.codigoa=b.timevisitante UNION ALL SELECT a.codigoa, a.time, b.timecasa, b.placarcasa, b.placarvisitante, b.timevisitante,b.codigob FROM tebelaa a INNER JOIN tabelab b ON a.codigoa=b.codigob
Deixa eu tentar explica melhor Marcos P
timecasa e timevisitante são chaves estrangeiras da chave primaria do codigoa que recebe o nome dos times
quando eu cadastro timecasa e timevisitante esta tudo certo relacionando ao time, so que quando ele vai mostrar no inner join não mostra, para eu saber se esta tudo certo eu cadastrei os time com os nome dos id do campo codigoa, exemplo: codigoa 1 é igual a time A1 e por ai vai.
Então é isso que eu quero, irei mostra um exemplo com imagem para mostrar como eu quero
[img]http://arquivo.devmedia.com.br/forum/imagem/423816-20150413-194528.jpg[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/423816-20150413-194628.jpg[/img]
é isso
Clique aqui para fazer login e interagir na Comunidade :)