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