INNER JOIN

Se fizermos um INNER JOIN, pegamos somente as crianças que têm brinquedos. Se uma criança não tiver brinquedos, ela não aparece na lista!

Exemplo:

Temos duas tabelas no banco de dados:

-- Tabela de crianças
CREATE TABLE Criancas (
    id INT PRIMARY KEY,
    nome VARCHAR(50)
);

-- Tabela de brinquedos
CREATE TABLE Brinquedos (
    id INT PRIMARY KEY,
    nome_brinquedo VARCHAR(50),
    id_crianca INT
);

inserir os dados:

-- Crianças
INSERT INTO Criancas (id, nome) VALUES
(1, 'João'),
(2, 'Maria'),
(3, 'Pedro');  -- Pedro não tem brinquedo

-- Brinquedos
INSERT INTO Brinquedos (id, nome_brinquedo, id_crianca) VALUES
(1, 'Carrinho', 1),  -- João tem Carrinho
(2, 'Boneca', 2),    -- Maria tem Boneca
(3, 'Bola', NULL);   -- Bola sem dono

Usando o INNER JOIN:

SELECT Criancas.nome, Brinquedos.nome_brinquedo
FROM Criancas
INNER JOIN Brinquedos ON Criancas.id = Brinquedos.id_crianca;

👦❌ Se o Pedro não tiver brinquedo, ele não aparece!

📝 Resultado*:*

Nome Brinquedo
João Carrinho
Maria Boneca

LEFT JOIN

Agora, queremos ver todas as crianças, mesmo aquelas sem brinquedos. Se uma criança não tiver brinquedos, colocamos um "nada" na coluna de brinquedos.

Exemplo: