Comandos JOIN
Enviado: 06 Mai 2025, 20:04
Foram criados as tabelas
Inserido os dados
--ELABORA UM COMANDO DE SELECT COMO O DA AULA PASSADA
--MOSTRE O NOME PESSOAS E NOMES DOS MATERIAIS QUE ELES POSSUEM
--Selecione o nome das pessoas que possuem ou não material,
--caso tenham material apresente os nomes dos materiais.
-- SELECIONE TODAS AS PESSOAS QUE NÃO POSSUEM MATERIAL
-- Selecione todos os materiais e por quem estão sendo utilizados ou não?
-- QUERO VISUALIZAR TODOS OS MATERIAIS SEM PESSOA ASSOCIADO
--independente de estarem ou não associados
--Mostre os atltas sem material e os materiais que estão sem atletas ainda
Código: Selecionar todos
CREATE TABLE material (
id_material INTEGER PRIMARY KEY,
nome VARCHAR(30)
);
Código: Selecionar todos
CREATE TABLE pessoa (
id_pessoa INTEGER PRIMARY KEY,
nome VARCHAR(30),
id_materialfk INTEGER,
CONSTRAINT material_if_fk FOREIGN KEY(id_materialfk)
REFERENCES material(id_material)
);
Código: Selecionar todos
INSERT INTO material (id_material, nome) VALUES
(1,'bola'),(2,'capacete'),(3,'bone'),(4,'luva'),(5,'chuteira'),(6,'globo'),(7,'taco');
INSERT INTO pessoa (id_pessoa, nome, id_materialfk) VALUES
(1,'Pedro',1),(2,'Rafael',6),(3,'Marcos',7);
Código: Selecionar todos
SELECT material.nome, pessoa.nome
FROM material, pessoa
WHERE material.id_material = pessoa.id_materialfk
Código: Selecionar todos
SELECT material.nome, pessoa.nome
FROM material INNER JOIN pessoa
ON material.id_material = pessoa.id_materialfk;
--caso tenham material apresente os nomes dos materiais.
Código: Selecionar todos
INSERT INTO pessoa(id_pessoa, nome, id_materialfk) VALUES(4,'Daniel',null);
Código: Selecionar todos
SELECT p.nome, m.nome
FROM pessoa as p LEFT JOIN material as m
ON id_material = id_materialfk;
Código: Selecionar todos
SELECT p.nome, m.nome
FROM pessoa as p LEFT JOIN material as m
ON id_material = id_materialfk;
Código: Selecionar todos
SELECT A.nome, B.nome
FROM pessoa AS A
LEFT JOIN material AS B
ON A.id_materialfk = B.id_material
WHERE B.id_material IS NULL;
Código: Selecionar todos
SELECT A.nome, B.nome
FROM pessoa AS A
RIGHT JOIN material AS B
ON A.id_materialfk = B.id_material;
Código: Selecionar todos
SELECT A.nome, B.nome
FROM pessoa AS A RIGHT JOIN material AS B
ON A.id_materialfk = B.id_material
WHERE A.id_materialfk is null;
Código: Selecionar todos
SELECT A.nome, B.nome
FROM pessoa AS A FULL OUTER JOIN material AS B
ON A.id_materialfk = B.id_material
Código: Selecionar todos
SELECT A.nome, B.nome
FROM pessoa AS A FULL OUTER JOIN material AS B
ON A.id_materialfk = B.id_material
WHERE A.id_materialfk is null OR B.id_material IS NULL