Select pegando três tabelas.[Resolvido]

4 respostas
Dani_Gomes

Tenho uma tabela que relaciona duas.
alunos_has_cursos, que pega as pk de alunos e cursos.
Quero dar um select que pegue o aluno e o curso que estão relacionados dentro do alunos_has_cursos.
Porém eu preciso dos dados do alunos e do curso também.
Tenhei assim:

Mas tá dando erro no AND.

4 Respostas

alberthy
[b]É sempre bom dar apelidos as suas tabelas!

Abraço.[/b]

[b]É sempre bom dar apelidos as suas tabelas!

Abraço.[/b]

wbdsjunior

qual a mensagem de erro?

também estam faltando ligações nos joins. você precisa dizer como a tabela cursos_has_alunos se liga com as tabelas alunos e cursos.

SELECT alunos.* // é importante fazer isso , cursos.* // e isso para melhorar a "visualização" dos dados na consulta. senão você terá também os dadps da tabela cursos_has_alunos, repetindo o campo matrícula e id do curso FROM cursos_has_alunos , alunos , cursos WHERE alunos.matricula = cursos_has_alunos.matricula // aqui AND curso.id = cursos_has_alunos.idcurso // e aqui AND cursos_has_alunos.matricula = 29 AND cursos_has_alunos.idcurso = 2;

Jhonny_Oliveira

Sempre que puder evite o tal de

prefira colocar o nome dos campos que deseja trazer na consulta, tá certo que se tratando de uma simples consulta sem muito propósito isso é aceitável, mas se for dentro de seus programas isso pode dificultar a leitura do código por outras pessoas e até por você mesmo no futuro.

Então tente desde já a sempre mencionar os campos, pois na vida real muitas vezes trabalhamos com tabelas de 20, 30 ou mais campos, mas dessas só precisamos de 2 ou 3 na maiorias das vezes.

Dani_Gomes

Obrigado a todos que me ajudaram, consegui fazer e deu certo.

Criado 4 de dezembro de 2011
Ultima resposta 4 de dez. de 2011
Respostas 4
Participantes 4