Ir para conteúdo

POWERED BY:

Arquivado

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

Walter Aragão

[Resolvido] inner join

Recommended Posts

boa noite pessoal,

estou precisando acessar informações de 2 tabelas atraves de chave estrangeira , pesquisei e descobri que tem algo haver com inner join , porem não achei nada me dizendo como implementar .. desenvolvo em php porem acho que essa duvida se direciona mais para o mysql..

alguem tem alguma implementação com esse assunto para me auxiliar ou algo que me faça entender ? rs

segue as tabelas ..

 

create table aluno(

id int(11) not null auto_increment,

nome varchar(50) not null,

telefone varchar (50) not null,

cpf varchar(50) not null,

primary key (id));

 

create table turma(

id int(11) not null auto_increment,

nome varchar(50) not null,

turno varchar(50) not null,

id_aluno int(11) not null,

primary key(id),

foreign key (id_aluno) references aluno (id));

 

 

abraços e boa noite !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia amigo,

 

Vou te dar um exemplo utilizando as suas tabelas:

 

SELECT a.id, a.nome, a.telefone FROM aluno AS a

Com esta query você seleciona dados do aluno normalmente.

 

SELECT t.id, t.nome, t.turno FROM turma AS t

Já com esta você seleciona os dados da tabela turma.

 

Para selecionar tudo junto, basta você colocar os SELECTs num só e usar a cláusula JOIN. Veja:

 

SELECT a.id, a.nome, a.telefone, t.id, t.nome, t.turno FROM aluno AS a JOIN turma AS t ON t.id_aluno = a.id

No JOIN utilizamos o ON para determinar como será feita a junção das tabelas. No seu caso, a chave de ligação é o campo id_aluno na tabela turma com o campo id na tabela aluno.

 

O JOIN é um aspecto importante e constante na vida de quem mexe com SQL, sugiro que pesquise mais a respeito. Não é difícil, e é bem interessante =]

 

Uma nota importante: A sua modelagem está errada cara, ao invés de fazer um campo id_aluno na tabela turma você precisa fazer um campo id_turma na tabela aluno, para dizer que aquele aluno pertence a uma turma. Seria assim:

 

CREATE TABLE aluno (
   id int(11) NOT NULL AUTO_INCREMENT,
   id_turma int(11) NOT NULL,
   nome varchar(50) NOT NULL,
   telefone varchar (50) NOT NULL,
   cpf varchar(50) NOT NULL,
   PRIMARY KEY (id),
   FOREIGN KEY (id_turma) REFERENCES turma (id)
);

CREATE TABLE turma (
   id int(11) NOT NULL AUTO_INCREMENT,
   nome varchar(50) NOT NULL,
   turno varchar(50) NOT NULL,,
   PRIMARY KEY (id)
);

Espero que possa ser útil, desculpe se tiver erros de sintaxe, não testei nenhuma query.

 

Qualquer coisa posta aí, abraço =]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia amigo,

 

Vou te dar um exemplo utilizando as suas tabelas:

 

SELECT a.id, a.nome, a.telefone FROM aluno AS a

Com esta query você seleciona dados do aluno normalmente.

 

SELECT t.id, t.nome, t.turno FROM turma AS t

Já com esta você seleciona os dados da tabela turma.

 

Para selecionar tudo junto, basta você colocar os SELECTs num só e usar a cláusula JOIN. Veja:

 

SELECT a.id, a.nome, a.telefone, t.id, t.nome, t.turno FROM aluno AS a JOIN turma AS t ON t.id_aluno = a.id

No JOIN utilizamos o ON para determinar como será feita a junção das tabelas. No seu caso, a chave de ligação é o campo id_aluno na tabela turma com o campo id na tabela aluno.

 

O JOIN é um aspecto importante e constante na vida de quem mexe com SQL, sugiro que pesquise mais a respeito. Não é difícil, e é bem interessante =]

 

Uma nota importante: A sua modelagem está errada cara, ao invés de fazer um campo id_aluno na tabela turma você precisa fazer um campo id_turma na tabela aluno, para dizer que aquele aluno pertence a uma turma. Seria assim:

 

CREATE TABLE aluno (
   id int(11) NOT NULL AUTO_INCREMENT,
   id_turma int(11) NOT NULL,
   nome varchar(50) NOT NULL,
   telefone varchar (50) NOT NULL,
   cpf varchar(50) NOT NULL,
   PRIMARY KEY (id),
   FOREIGN KEY (id_turma) REFERENCES turma (id)
);

CREATE TABLE turma (
   id int(11) NOT NULL AUTO_INCREMENT,
   nome varchar(50) NOT NULL,
   turno varchar(50) NOT NULL,,
   PRIMARY KEY (id)
);

Espero que possa ser útil, desculpe se tiver erros de sintaxe, não testei nenhuma query.

 

Qualquer coisa posta aí, abraço =]

 

funcionou cara , muito obrigado era exatamente isso que precisava !!!!! muito obrigado !

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.