Consulta em 3 tabelas diferentes
Preciso de um select na tabela 1. Porém na tabela 1 tenho apenas os id´s dos usuários e grupos e nome estão em uas respectivas tabelas.
Não quero mostrar os id´s das tabelas 2 e 3 e sim o nome conforme o modelo abaixo.
tabela 1 = course_performances "Notas dos alunos"
tabela 2 = Users "Todos os usuários"
tabela 3 = groups "Todos os cursos"
gostaria que o resultado do select fosse desta forma:
id_usuario| nome usuário| id_curso| nome_curso| Nota do Curso|
334 | Aluno Teste | 1014 | Algebra I | 9 |
se puderem me ajudar com urgência.
Não quero mostrar os id´s das tabelas 2 e 3 e sim o nome conforme o modelo abaixo.
tabela 1 = course_performances "Notas dos alunos"
tabela 2 = Users "Todos os usuários"
tabela 3 = groups "Todos os cursos"
gostaria que o resultado do select fosse desta forma:
id_usuario| nome usuário| id_curso| nome_curso| Nota do Curso|
334 | Aluno Teste | 1014 | Algebra I | 9 |
se puderem me ajudar com urgência.
Luciano
Curtidas 0
Respostas
Alan Mario
13/05/2015
Boa noite Luciano!
Uma dica para o seu problema.
[url]http://blog.thiagobelem.net/relacionamento-de-tabelas-no-mysql/[/url]
Uma dica para o seu problema.
[url]http://blog.thiagobelem.net/relacionamento-de-tabelas-no-mysql/[/url]
GOSTEI 0
Marcos P
13/05/2015
Dois joins simples entre as tabelas, resolvem seu problema...
Ajuste os nomes das colunas e tabelas...
select nota.id_usuario, usr.nome_usuario, cur.id_curso, cur.id_usuario, cur.nome_curso, nota.nota_curso from notas nota inner join usuarios usr on (nota.id_usuario = usr.id_usuario) inner join cursos cur on (nota.id_curso = cur.id_curso)
Ajuste os nomes das colunas e tabelas...
GOSTEI 0
Luciano
13/05/2015
Boa noite Marcos, muito obrigado
consegui fazer o select e ficou desta forma
select
nota.user_id,
usr.user_name,
cur.group_id,
cur.group_name,
nota.c_performance_score
FROM
course_performances nota
INNER JOIN users usr on (nota.user_id = usr.user_id)
INNER JOIN groups cur on (nota.group_id = cur.group_id)
order by user_name
porém tem como acrescentar um where group_id=988
quero que apareça as notas apenas do curso com id=988
consegui fazer o select e ficou desta forma
select
nota.user_id,
usr.user_name,
cur.group_id,
cur.group_name,
nota.c_performance_score
FROM
course_performances nota
INNER JOIN users usr on (nota.user_id = usr.user_id)
INNER JOIN groups cur on (nota.group_id = cur.group_id)
order by user_name
porém tem como acrescentar um where group_id=988
quero que apareça as notas apenas do curso com id=988
GOSTEI 0
Marcos P
13/05/2015
Acrescente no final da query, antes do order by, fazendo referência ao aliás da tabela....
: where nota.group_id = 988 order by user_name
GOSTEI 0
Alan Mario
13/05/2015
Pode me passar umas dicas de select no MySQL, do básico mesmo, estou enferrujado.
GOSTEI 0
Alan Mario
13/05/2015
Obrigado Marcos P, treinar mais um pouco!!!
GOSTEI 0
Luciano
13/05/2015
Boa tarde, teria como criar desta forma?
[img:descricao=da forma em que preciso]http://arquivo.devmedia.com.br/forum/imagem/430413-20150515-131924.png[/img]
Tabelas necessárias
tabela "users" screencast.com/t/JX8xUuOA
[img:descricao=Tabela users]http://arquivo.devmedia.com.br/forum/imagem/430413-20150515-132057.png[/img]
tabela "groups" screencast.com/t/SzYpTObO
[img:descricao=Tabela groups]http://arquivo.devmedia.com.br/forum/imagem/430413-20150515-132130.png[/img]
tabela "assignments" screencast.com/t/IvIPFoARcpG
[img:descricao=Tabela assignments]http://arquivo.devmedia.com.br/forum/imagem/430413-20150515-132248.png[/img]
tabela "assignments_in_group" screencast.com/t/1P6LGaGU7
[img:descricao=Tabela assignments_in_groups]http://arquivo.devmedia.com.br/forum/imagem/430413-20150515-132326.png[/img]
tabela "assignments_status" screencast.com/t/Qugwr4lw
[img:descricao=Tabela assignments_status]http://arquivo.devmedia.com.br/forum/imagem/430413-20150515-132401.png[/img]
[img:descricao=da forma em que preciso]http://arquivo.devmedia.com.br/forum/imagem/430413-20150515-131924.png[/img]
Tabelas necessárias
tabela "users" screencast.com/t/JX8xUuOA
[img:descricao=Tabela users]http://arquivo.devmedia.com.br/forum/imagem/430413-20150515-132057.png[/img]
tabela "groups" screencast.com/t/SzYpTObO
[img:descricao=Tabela groups]http://arquivo.devmedia.com.br/forum/imagem/430413-20150515-132130.png[/img]
tabela "assignments" screencast.com/t/IvIPFoARcpG
[img:descricao=Tabela assignments]http://arquivo.devmedia.com.br/forum/imagem/430413-20150515-132248.png[/img]
tabela "assignments_in_group" screencast.com/t/1P6LGaGU7
[img:descricao=Tabela assignments_in_groups]http://arquivo.devmedia.com.br/forum/imagem/430413-20150515-132326.png[/img]
tabela "assignments_status" screencast.com/t/Qugwr4lw
[img:descricao=Tabela assignments_status]http://arquivo.devmedia.com.br/forum/imagem/430413-20150515-132401.png[/img]
GOSTEI 0
Jose Santos
13/05/2015
Esse código vai dar certo é só acrescentar as tabelas do seu banco com o id de cada tabela
com este conceito você vai conseguir buscar dados das tabelas relacionadas.
SELECT tabela1.*, tabela2.*, tabela3.* FROM tabela2 LEFT JOIN tabela1 ON tabela2.id2 = tabela1.referenciaid1 LEFT JOIN tabela3 ON tabela2.referenciaid3 = tabela3.referenciaid2 WHERE idbusca = ?
com este conceito você vai conseguir buscar dados das tabelas relacionadas.
GOSTEI 0
Luciano
13/05/2015
Obrigado :)
GOSTEI 0