Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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'
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