Ir para conteúdo

Arquivado

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

Yan Gabriel

Como Capturar Dados de Duas Tabelas a Partir de uma Terceira

Recommended Posts

BOA TARDE GALERA!
Tenho o seguinte problema:
Possuo TRÊS TABELAS no banco:
1° TABELA: ALUNOS;
2° TABELA: DISCIPLINAS;
3° TABELA: ALUNO_DISCIPLINA;

A tabela aluno possui três campos: id, nome e idade. Já a disciplinas possui dois campos: id e nome e a tabela alunos_disciplinas possui dois campos: aluno_id e disciplina_id. É essa tabela que eu uso para fazer o relacionamento(de N para N) entre alunos e disciplinas.

Como eu faço para na hora da consulta à tabela alunos_disciplinas capturar o nome referente ao id da tabela aluno e ao id da tabela disciplinas.

Segue o código das tabelas e o banco:

create database escola;

use escola;


create table alunos(
id int unsigned not null auto_increment,
nome varchar(50) not null,
idade int(2) not null,
primary key(id)
);

create table disciplinas(
id int unsigned not null auto_increment,
nome varchar(50) not null,
primary key(id)
);

create table alunos_disciplinas(
aluno_id int unsigned,
disciplina_id int unsigned,
constraint fk_aluno_id foreign key(aluno_id) references alunos(id),
constraint fk_disciplina_id foreign key(disciplina_id) references disciplinas(id)
);


insert into alunos values(1, 'Yan', 18);
insert into alunos values(null, 'Victória', 18);

insert into disciplinas values(null, 'Português');
insert into disciplinas values(null, 'Matemática');
insert into disciplinas values(null, 'Física');
insert into disciplinas values(null, 'Filosofia');
insert into disciplinas values(null, 'História');

insert into alunos_disciplinas values(1, 1);
insert into alunos_disciplinas values(1, 2);
insert into alunos_disciplinas values(1, 3);
insert into alunos_disciplinas values(1, 4);
insert into alunos_disciplinas values(1, 5);

insert into alunos_disciplinas values(2, 1);
insert into alunos_disciplinas values(2, 2);
insert into alunos_disciplinas values(2, 3);
insert into alunos_disciplinas values(2, null);
insert into alunos_disciplinas values(2, 5);

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

SELECT ad.*,a.nome AS alunoNome,d.nome AS disciplinaNome FROM alunos_disciplinas ad INNER JOIN alunos a ON ad.aluno_id=a.id INNER JOIN disciplinas d ON ad.disciplina_id=d.id

dai vc pode por os filtros se precisar

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.