Beraldo 864 Denunciar post Postado Maio 4, 2007 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 Compartilhar este post Link para o post Compartilhar em outros sites
cassitos 2 Denunciar post Postado Maio 4, 2007 Fala cara. Vou responder rapidão, mas tenta algo do tipo: SELECT A.*,B.nome AS NOMEALUNO,C.nome AS NOMEPROFESSOR FROM aulas A LEFT JOIN usuarios B ON B.id = A.aluno LEFT JOIN usuarios C ON C.id = A.professor Fiz um teste rapido com a estrutura e dados que você passou e funfou, v c é o que está precisando.vlw! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Maio 4, 2007 Isso mesmo, parceiro!! Funcionou perfeitamente, como eu precisava. :D Eu não sabia que era possível usar dois aliases diferentes para uma mesma tabela. http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif :P Valeu! Abraços, Beraldo Compartilhar este post Link para o post Compartilhar em outros sites
cassitos 2 Denunciar post Postado Maio 5, 2007 beleza! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites