Selecionar funcionario e cidade onde ele reside
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
Curtidas 0
Respostas
E2ti
28/11/2019
Boa noite igor, procure um pouco por inner join, vai te ajudar.
GOSTEI 0
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