CREATE TABLE Paises(
pais_cod serial not null,
nome VARCHAR(30) not null,
primary key(pais_cod)
);
CREATE TABLE Pessoa(
pes_cod serial not null,
nome VARCHAR(30) not null,
cpf VARCHAR(20) not null,
sexo CHARACTER(1) not null,
primary key(pes_cod)
);
CREATE TABLE Modalidades(
mod_cod serial not null,
nome VARCHAR(35) not null,
descricao text,
primary key(mod_cod)
);
CREATE TABLE Atletas(
atle_cod serial not null,
salario int not null,
pais_cod int not null,
pes_cod int not null,
primary key(atle_cod),
constraint fk_Paises foreign key (pais_cod) references Paises (pais_cod),
constraint fk_Pessoa foreign key (pes_cod) references Pessoa (pes_cod)
);
CREATE TABLE Praticas(
atle_cod int not null,
mod_cod int not null,
nivel int not null,
primary key(nivel),
constraint fk_Atletas foreign key (atle_cod) references Atletas (atle_cod),
constraint fk_Modalidades foreign key (mod_cod) references Modalidades (mod_cod)
);
drop table Praticas;
drop table Atletas;
drop table Modalidades;
drop table Pessoa;
drop table Paises;
INSERT INTO Paises VALUES (default, 'Arzerbaijão');
INSERT INTO Paises VALUES (default, 'Rússia');
SELECT*FROM Paises;
INSERT INTO Pessoa VALUES (default, 'José aldo', '9999', 'M');
INSERT INTO Pessoa VALUES (default, 'Chuck Noris', '8888', 'M');
SELECT*FROM Pessoa;
INSERT INTO Modalidades VALUES (default, 'Salto c. vara', null);
INSERT INTO Modalidades VALUES (default, 'Judô', null);
SELECT*FROM Modalidades;
INSERT INTO Atletas VALUES(default, 3500, 1, 1);
INSERT INTO Atletas VALUES(default, 5000, 2, 2);
SELECT*FROM Atletas;
INSERT INTO Praticas VALUES(1,1,1);
INSERT INTO Praticas VALUES(2,2,3);
SELECT*FROM Praticas;
SELECT p.nome, a.salario
FROM Atletas a
INNER JOIN Pessoa p ON p.pes_cod = a.pes_cod;
SELECT p.nome, m.nome
FROM Atletas
-- nessa parte preciso juntar o nome do atleta e sua respectiva modalidade
Pelo que entendi do modelo, vc tem que fazer JOIN com as tabelas Pratica e Modalidade:
SELECT
p.nome,
m.nome
FROM
Atletas a
INNER JOIN Praticas p ON p.atle_cod = a.atle_cod
INNER JOIN Modalidades m ON m.mod_cod = p.mod_cod
Então amigo, mas p.nome refere-se a tabela Pessoa, não a Praticas
Verdade, nem reparei. Na consulta que montei, tem que fazer o join com a tabela Pessoa tb.
SELECT
p.nome,
m.nome
FROM
Atletas a
INNER JOIN Pessoa p ON p.pes_cod = a.pes_cod
INNER JOIN Praticas pr ON pr.atle_cod = a.atle_cod
INNER JOIN Modalidades m ON m.mod_cod = pr.mod_cod
1 curtida
Oh rapaz!! salvou meu dia viu, agradeço, tenha uma ótima semana!!