Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, pessoal.
Tenho uma tabela chamada usuarios, na qual armazeno informações de usuários, como ID, nome, CPF, nível (administrador, professor ou aluno) e outros dados. Há uma outra tabela chamada aulas, na qual armazeno as datas das aulas marcadas.
Eis o código da tabela aulas (os campos aluno e professor estão relacionados com o campo id da tabela usuarios):
Create Table If Not Exists aulas(
id smallint(5) Unsigned Not Null auto_increment,
aluno smallint(5) Unsigned default Null,
professor smallint(5) Unsigned Not Null,
data_hora datetime,
Primary Key (id),
Foreign Key (aluno)
References usuarios(id) On Delete Cascade On Update Cascade,
Foreign Key (professor)
References usuarios(id) On Delete Restrict On Update Cascade
)type = innodb Character Set latin1 Collate latin1_general_ci
O que eu preciso fazer é o seguinte: selecionar as datas das aulas, para que sejam apresentadas na tela com os respectivos alunos e professores. O problema é que os nomes dos alunos e professores estão na tabela usuarios, cujo código é dispensável, apenas lembro que existem os campos "nome" e "id", corretamente criados e preenchidos.
A consulta deveria ficar mais ou menos assim:
Select DATE_FORMAT(a.data_hora, '%d/%m/%Y') as data, DATE_FORMAT(a.data_hora, '%H:%i') as hora, nome_do_aluno as aluno, nome_do_professor as professor From aulas as a Where a.data_hora >= NOW()
O que eu posso colocar no lugar de nome_do_aluno e nome_do_professor, para pegar os dados corretamente?
Farei um pequeno esboço daas duas tabelas, somente para dar uma idéia de como estão oss dados
usuarios
id | nome | id_nivel
1 | Beraldo | 3
2 | Prof. Zé | 2* Nível 2 = Professor, nível 3 = aluno
aulas
data_hora | aluno | professor
2007-05-10 08:00:00 | 1 | 2
O resultado deve ser:
Data | Hora | Aluno | Professor
10/05/2007 | 08:00 | Beraldo | Prof. Zé
A data e a hora aparecem corretamente. O problema é selecionar o nome... como posso fazer?
Obrigado.
Abraços,
Beraldo
Carregando comentários...