Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

goruks

Select com join

Recommended Posts

tipo como faço um select de alguns campos de 1 tabela e outros de outra colocando uma condição de 1 em cada tabela serem iguais a $variaveltentei montar e consegui seguinte eh possivel fazer uma condiçao dese tipo no where?alguem da forcinha ;D?SELECT alunos.nome, documentos.rg, documentos.cpf, documentos.diploma, documentos.certificado, documentos.historico, documentos.curriculo, documentos.fotos, documentos.obs FROM alunos, documentos WHERE ((alunos.id_curso && documentos.id_curso) = $id_curso) ORDER BY alunos.nome";$id_curso esta variavel vem por get de outro forme tambem ordem de ordenar pode ser deste modo? ORDER BY alunos.nome"com isso ele ordena a linha da outra tabela referente ao nome junto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho ..., $id_cuso igual a campo id_aluno da tabela documentos?

 

Você precisa especificar a relação que há nas duas tabelas, para que não seja feito um plano cartesiano das duas tabelas.

 

Você teria que usar no caso:

WHERE aluno.id_curso = $id_curso AND aluno.id = documentos.id_aluno

Compartilhar este post


Link para o post
Compartilhar em outros sites

eh tava errado ali arrumei eh id_curso na otra tabela tb eu ja tinha visto arrumei mas sintax do where tava errada vou testar desse jeito que você

 

no caso seria arrim correto?

 

WHERE alunos.id_curso = $id_curso AND documentos.id_curso = $id_curso ORDER BY alunos.nome";

tipo nao tem problema mandar ordenar pelo campo da primeira tabela né? que a linha relacionada a quele campo eh ordenada junto? :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa entao consegui resolver problema agora estou tentando fazer um join mais dificil ele esta selecionando direito mas ele retorna 7 vezes o mesmo resultado de cada linha oq há de errado?

 

fiz da seguinte forma:

 

da tabela alunos selecionei o id e nome

da tabela documentos todos os campos

onde o capo que identifica o curso fosse igual na tabela aluno e na tabela documentos para mim teoricamente isso deveria selecionar o nome, id e os documentos de todos os alunos de um curso X

 

SELECT pos_alunos.id, pos_alunos.nome, pos_documentos.rg, pos_documentos.cpf, pos_documentos.diploma, pos_documentos.certificado, pos_documentos.historico, pos_documentos.curriculo, pos_documentos.fotos, pos_documentos.obs FROM pos_alunos, pos_documentos WHERE pos_alunos.id_curso = $id_curso AND pos_documentos.id_curso = $id_curso ORDER BY pos_alunos.nome
para escrever usei

 

while ( $x = mysql_fetch_array($busca) )
problema encontrado é que ele escreve 7 vezes cada linha e poe nome e id na linha de documento que nao eh referente aquele id (por exemplo na figura a baixo pega id 2 e nome do id 2 mas poe na linha do id4 na tebela 2 )

 

exemplo +- isso

pegar todos os id e nome dos alunos da tabela 1 e a linha respectiva na tabela 2 onde o id_curso = X e ordenar pelo nome que so esta presente na tabela 1

 

Imagem Postada

 

desculpe a burrice mas estou aprendendo e o problema nao sei muito bem que termos procurar é o join mesmo que uso para fazer algo desse tipo?

 

vlw :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.