Selecionar funcionario e cidade onde ele reside

SQL

MySQL

Banco de Dados

28/11/2019

Estou fazendo um trabalho de mysql, eu preciso estrair o nome da cidade que ta relacionada a um funcionario, tem uma tabela de funcionarios e outra de cidades, eu preciso apresentar o funcionario e o nome da cidade onde mora cada funcionario, mas não consigo fazer isso, só consigo mostrar cada coisa separada não estou conseguindo unir os dois, só consegui unir funcionario e o idCidade
create database tarefapratica;
use  tarefapratica;
CREATE table estado(
    idEstado integer not null AUTO_INCREMENT PRIMARY key,
    nome varchar(50) not null,
    uf char(2)
);
create table cidade(
    idCidade integer not null AUTO_INCREMENT PRIMARY key,
    nome varchar(45) not null,
    estadoIdEstado integer,
    CONSTRAINT fk_estado_cidade
    FOREIGN key(estadoIdEstado) REFERENCES estado(idEstado)
);
create table cargo(
	idCargo integer not null AUTO_INCREMENT PRIMARY key,
    nome varchar(45) not nulL
    );

create table funcionario(
idFuncionario integer not null auto_increment primary key,
nome varchar(45),
salario float,
horasSemanais integer,
endereco varchar(45) not null,
cargoIdCargo integer,
cidadeIdCidade integer,
constraint fk_cargo_funcionario
foreign key(cargoIdCargo) references cargo(idCargo),
constraint fk_cidade_funcionario
foreign key(CidadeIdCidade) references cidade(idCidade)
);
create table projeto(
idProjeto integer not null auto_increment primary key,
nome varchar(45) not null,
ativo tinyint
);
create table projetoFuncionario(
projetoIdProjeto integer,
funcionarioIdFuncionario integer,
constraint fk_projeto_projetoFuncionario
foreign key(projetoIdProjeto) references projeto(idProjeto),
constraint fk_funcionario_projetofuncionario
foreign key(funcionarioIdFuncionario) references funcionario(idFuncionario)
);

 INSERT INTO estado (idEstado,nome,uf) VALUES (1,'Rio Grande do Sul','RS');   
 INSERT INTO estado (idEstado,nome,uf) VALUES (2,'Paraná','PR'); 
 INSERT INTO estado (idEstado,nome,uf) VALUES (3,'São Paulo','SP');
 INSERT INTO cidade (idCidade,nome,estadoIdEstado) VALUES (1,'Taquara',1); 
 INSERT INTO cidade (idCidade,nome,estadoIdEstado) VALUES (2,'Parobé',1); 
 INSERT INTO cidade (idCidade,nome,estadoIdEstado) values (3,'Igrejinha',1);
 INSERT INTO cidade (idCidade,nome,estadoIdEstado) VALUES (4,'Porto Alegre',1); 
 INSERT INTO cidade (idCidade,nome,estadoIdEstado) VALUES (5,'Curitiba',2); 
 INSERT INTO cidade (idCidade,nome,estadoIdEstado) VALUES (6,'Londrina',2);
 INSERT INTO cidade (idCidade,nome,estadoIdEstado) VALUES (7,'Foz do Iguaçu',2); 
 INSERT INTO cidade (idCidade,nome,estadoIdEstado) VALUES (8,'São Paulo',3);
 INSERT INTO cidade (idCidade,nome,estadoIdEstado) VALUES (9,'Guarulhos',3);
 INSERT INTO cidade (idCidade,nome,estadoIdEstado) VALUES (10,'Camoinas',3);
 insert into projeto (idProjeto,nome,ativo) values(1,'P1',1);
 insert into projeto (idProjeto,nome,ativo) values(2,'P2',1);
 insert into projeto (idProjeto,nome,ativo) values(3,'P3',1);
 insert into projeto (idProjeto,nome,ativo) values(4,'P4','0');
 insert into projeto (idProjeto,nome,ativo) values(5,'P5','0');
 insert into cargo(idCargo,nome) values(1,'Gerente');
 insert into cargo(idCargo,nome) values(2,'Secretário');
 insert into cargo(idCargo,nome) values(3,'Técnico');
 insert into cargo(idCargo,nome) values(4,'Analista');
 insert into cargo(idCargo,nome) values(5,'Seguranca');
 insert into cargo(idCargo,nome) values(6,'Suporte');
 insert into funcionario(idFuncionario,nome,salario,horasSemanais,endereco,cargoIdCargo,cidadeIdCidade) values(1,'Andre',2580,44,'Rua A Bairro B',1,4);
 insert into funcionario(idFuncionario,nome,salario,horasSemanais,endereco,cargoIdCargo,cidadeIdCidade) values(2,'Rubens',1598,20,'Rua V Bairro D',3,4);
 insert into funcionario(idFuncionario,nome,salario,horasSemanais,endereco,cargoIdCargo,cidadeIdCidade) values(3,'Rafael',5830,44,'Rua D Bairro F',4,4);
 insert into funcionario(idFuncionario,nome,salario,horasSemanais,endereco,cargoIdCargo,cidadeIdCidade) values( 4,'Michele',2580,35,'Rua J Bairro N',6,4);
 insert into funcionario(idFuncionario,nome,salario,horasSemanais,endereco,cargoIdCargo,cidadeIdCidade) values(5,'Ana',5830,44,'Rua H Bairro F',1,5);
 insert into funcionario(idFuncionario,nome,salario,horasSemanais,endereco,cargoIdCargo,cidadeIdCidade) values(6,'Adriana',1800,20,'Rua D Bairro F',3,5);
 insert into funcionario(idFuncionario,nome,salario,horasSemanais,endereco,cargoIdCargo,cidadeIdCidade) values(7,'Ariana',2580,30,'Rua J Bairro N',4,5);
 insert into funcionario(idFuncionario,nome,salario,horasSemanais,endereco,cargoIdCargo,cidadeIdCidade) values(8,'Ariel',3000,40,'Rua D Bairro N',6,5);
 insert into funcionario(idFuncionario,nome,salario,horasSemanais,endereco,cargoIdCargo,cidadeIdCidade) values(9,'Juan',2500,40,'Rua H Bairro N',3,8);
 insert into funcionario(idFuncionario,nome,salario,horasSemanais,endereco,cargoIdCargo,cidadeIdCidade) values(10,'Beatrice',3000,40,'Rua M Bairro O',4,8);
 insert into funcionario(idFuncionario,nome,salario,horasSemanais,endereco,cargoIdCargo,cidadeIdCidade) values(11,'João',2500,30,'Rua O Bairro D',6,8);
 insert into projetoFuncionario(projetoIdProjeto,funcionarioIdFuncionario) values(1,1);
 insert into projetoFuncionario(projetoIdProjeto,funcionarioIdFuncionario) values(3,1);
 insert into projetoFuncionario(projetoIdProjeto,funcionarioIdFuncionario) values(1,2);
 insert into projetoFuncionario(projetoIdProjeto,funcionarioIdFuncionario) values(1,3);
 insert into projetoFuncionario(projetoIdProjeto,funcionarioIdFuncionario) values(1,4);
 insert into projetoFuncionario(projetoIdProjeto,funcionarioIdFuncionario) values(2,5);
 insert into projetoFuncionario(projetoIdProjeto,funcionarioIdFuncionario) values(2,6);
 insert into projetoFuncionario(projetoIdProjeto,funcionarioIdFuncionario) values(2,7);
 insert into projetoFuncionario(projetoIdProjeto,funcionarioIdFuncionario) values(2,8);
 insert into projetoFuncionario(projetoIdProjeto,funcionarioIdFuncionario) values(3,9);
 insert into projetoFuncionario(projetoIdProjeto,funcionarioIdFuncionario) values(3,10);
 insert into projetoFuncionario(projetoIdProjeto,funcionarioIdFuncionario) values(3,11);
 select c.nome from cidade c inner join estado e on c.estadoidEstado = e.idEstado where e.nome = "Paraná";
 select funcionario.nome,funcionario.cidadeidCidade,cidade.nome from funcionario,cidade where endereco=cidade.nome ;


Igor

Igor

Curtidas 0

Respostas

E2ti

E2ti

28/11/2019

Boa noite igor, procure um pouco por inner join, vai te ajudar.
GOSTEI 0
Jothaz

Jothaz

28/11/2019

Tenta algo assim:

SELECT		f.nome,c.nome,e.nome
FROM		funcionario f 
INNER JOIN	cidade c ON f.cidadeIdCidade = c.idCidade
INNER JOIN	estado e ON c.estadoidEstado = e.idEstado 
WHERE		c.nome = "Paraná";
GOSTEI 0
POSTAR