Query SQL para listar dados em 3 tabelas

1. Query SQL para listar dados em 3 tabelas

Diego
diegobh

(usa CentOS)

Enviado em 11/12/2013 - 15:37h

Boa tarde, será que poderiam me ajudar?

Tenho 3 tabelas:

alunos: id, nome, tel, end
provas id, data, nota, aluno(fk_id_de_alunos)
mensalidades: id, valor, aluno(fk_id_de_alunos)

Queria uma query para listar todos os alunos cadastrados:

ID------NomeAluno------Tel------EnD------Provas------Mensalidades

Lembrando que provas deve listar quantas provas ele fez e mensalidades mostrar a soma total do valor das mensalidades cadastradas do aluno.

Listar os alunos e sus dados tudo ok, mas n sei contar qntas provas ele faz e nem somar o valor de tdas as mensalidades pagas.

Será que poderiam me ajudar pf?

Valew!!!



  


2. Re: Query SQL para listar dados em 3 tabelas

Alex Sandro Carvalho Borges
asandrob

(usa CentOS)

Enviado em 11/12/2013 - 16:39h

Caso os alunos não tenham provas ou mensalidades
select alunos.id,
alunos.NomeAluno,
alunos.Tel,
alunos.EnD,
provas.*,
mensalidades.*
from alunos,
left outer join (select aluno, count(nota) from provas group by aluno) provas on (alunos.id=provas.aluno)
left outer join (select aluno, sum(valor) from mensalidades group by aluno) mensalidades on (alunos.id=mensalidades.aluno)



3. Re: Query SQL para listar dados em 3 tabelas

Diego
diegobh

(usa CentOS)

Enviado em 11/12/2013 - 17:35h

asandrob escreveu:

Caso os alunos não tenham provas ou mensalidades
select alunos.*,
provas.*,
mensalidades.*
from alunos,
left outer join (select aluno, count(nota) from provas group by aluno) provas on (alunos.id=provas.aluno)
left outer join (select aluno, sum(valor) from mensalidades group by aluno) mensalidades on (alunos.id=mensalidades.aluno)


vlw pela ajuda, mas tive 1 erro:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'left outer join (select aluno, count(nota) from provas group by aluno) li' at line 5



4. Re: Query SQL para listar dados em 3 tabelas

Alex Sandro Carvalho Borges
asandrob

(usa CentOS)

Enviado em 11/12/2013 - 17:57h

Eu fiz a toque de caixa...
Tem uma vírgula depois de "from alunos,"
Tira ela que deve funcionar, deixa assim "from alunos"


5. Re: Query SQL para listar dados em 3 tabelas

Diego
diegobh

(usa CentOS)

Enviado em 12/12/2013 - 14:56h

Não deu certo desse jeito =(

Acabei fazendo várias querys, mas também não consegui fazer para filtrar por exemplo por provas feitas ou valor de mensalidades pagas.

Então como implantar estes 2 filtros do jeito que fiz?
Ou de um jeito melhor ;)

<table width="800" cellspacing="0" cellpadding="0" border="1">
<tr>
<th>Nome</th>
<th>Provas</th>
<th>Mensalidades</th>
<th>Valor Total</th>
<th>Telefone</th>
</tr>
<?php
$sql = mysql_query('SELECT * from alunos order by nome ASC');
while ($a = mysql_fetch_assoc($sql)) {
$sql2 = mysql_query('select * from provas where aluno = '.$a['id']);
$sql3 = mysql_query('select sum(valor) from mensalidades where aluno = '.$a['id']);
$sql4 = mysql_query('select count(valor) from mensalidades where aluno = '.$a['id']);
?>
<tr>
<td><?= $a['nome']; ?></td>
<td style="text-align: center;"><?= mysql_num_rows($sql2); ?></td>
<td style="text-align: center;"><?= mysql_result($sql4, 0); ?></td>
<td style="text-align: center;"><?= "R$ ".number_format(mysql_result($sql3, 0),2,',','.'); ?></td>
<td style="text-align: center;">( <?= $a['ddd']; ?> ) <?= $a['telefone']; ?></td>
</tr>
<?php
}
?>
</table>


Valew pela ajuda galera ;)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts