Consulta em 3 tabelas diferentes

13/05/2015

0

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.
Luciano

Luciano

Responder

Posts

13/05/2015

Alan Mario

Boa noite Luciano!

Uma dica para o seu problema.

[url]http://blog.thiagobelem.net/relacionamento-de-tabelas-no-mysql/[/url]
Responder

13/05/2015

Marcos P

Dois joins simples entre as tabelas, resolvem seu problema...
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...
Responder

13/05/2015

Luciano

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
Responder

13/05/2015

Marcos P

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
Responder

14/05/2015

Alan Mario

Pode me passar umas dicas de select no MySQL, do básico mesmo, estou enferrujado.
Responder

14/05/2015

Alan Mario

Obrigado Marcos P, treinar mais um pouco!!!
Responder

15/05/2015

Luciano

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]
Responder

15/05/2015

Jose Santos

Esse código vai dar certo é só acrescentar as tabelas do seu banco com o id de cada tabela


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.
Responder

31/05/2016

Luciano

Obrigado :)
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar