Ir para conteúdo

POWERED BY:

Arquivado

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

theteo

Primeira vez no LEFT JOIN - sintaxe

Recommended Posts

Pessoal,

 

Fiz assim:

SELECT m.id_aluno, m.id_disciplina, u.nome, d.nome, n.id_nota, n.nota
FROM 
tbl_marcacoes m LEFT JOIN tbl_notas n ON m.id_disciplina = n.id_disciplina,
tbl_usuarios u, tbl_disciplinas d
WHERE 
m.id_aluno = u.id_user AND 
m.id_disciplina = d.id_disciplina AND
m.id_agenda =  '$id_agenda' 
ORDER BY 
u.nome, d.nome

Dessa forma que está ( e eu pensando q tinha resolvido), caso eu tenha 2 alunos com disciplinas iguais,

o resultado me traz o campo duplicado. exemplificando:

 

Digamos que eu tenha: (NO LUGAR DO ID VOU COLOCAR UM NOME PRA FICAR FÁCIL VISUALIZAR)

 

tbl_notas:

id_aluno, id_agenda, id_disciplina, nota
Joao , matematica, 1, 8.0

tbl_marcacoes

id_aluno, id_agenda, id_disciplina
Téo, 1 , matematica
Joao, 1, matematica

a query teria que me retornar dentre outros valores:

 

Joao, matematica, 1, 8.0

Teo, matematica, 1, null

 

Mas me retorna:

 

Joao, matematica, 1, 8.0

Teo, matematica, 1, 8.0 ( O téo ainda não tem nota , não era pra ter isso)

 

Por ser disciplina igual tá repetindo o valor.

 

Mais uma vez, muitíssimo obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, você não tem um diagrama das tabelas não? Facilita a leitura ;)

 

tenta assim:

SELECT m.id_aluno, m.id_disciplina, u.nome, d.nome, n.id_nota, n.nota
FROM tbl_marcacoes m LEFT JOIN tbl_notas n 
ON m.id_disciplina = n.id_disciplina,
LEFT JOIN tbl_usuarios u
ON m.id_aluno = u.id_user
LEFT JOIN tbl_disciplinas d
ON m.id_disciplina = d.id_disciplina
WHERE m.id_agenda =  '$id_agenda' 
ORDER BY 
u.nome, d.nome

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu a ajuda, mas consegui resolver assim:

SELECT m.id_aluno, m.id_disciplina, u.nome, d.nome, n.id_nota, n.nota
FROM tbl_marcacoes m
LEFT JOIN tbl_notas n ON m.id_disciplina = n.id_disciplina
AND m.id_aluno = n.id_aluno, tbl_usuarios u, tbl_disciplinas d
WHERE m.id_aluno = u.id_user
AND m.id_disciplina = d.id_disciplina
AND m.id_agenda =  '1'

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.