Sempre opto por criar as tabelas e popular com dados fictícios pra poder exercitar.
Criação de Tabelas
CREATE TABLE ClientesDesafio(
idclienteD TEXT PRIMARY KEY,
nomeD VARCHAR (255),
emailD VARCHAR (100)
);
CREATE TABLE PedidosDesafio(
idpedidosD TEXT,
idclientePD VARCHAR (255),
DataPedidoD DATE,
PRIMARY KEY (idpedidosD)
FOREIGN KEY (idclientePD) REFERENCES ClientesDesafio(idclienteD)
);
Inserindo dados
INSERT INTO ClientesDesafio (idcliented,nomeD,emailD) VALUES
(1, 'Maria Silva','maria.silva@email.com'),
(2, 'João Pereira','joao.pereira@email.com'),
(3, 'Ana Rodrigues','ana.rodrigues@email.com'),
(4, 'Pedro Alves','pedro.alves@email.com'),
(5, 'Sofia Santos','sofia.santos@email.com'),
(6, 'Jorge Lima','jorge.lima@email.com'),
(7, 'Luisa Ferreira','luisa.ferreira@email.com'),
(8, 'Carlos Gomes', 'carlos.gomes@email.com'),
(9, 'Marta Ribeiro','marta.ribeiro@email.com')
INSERT INTO PedidosDesafio (idpedidosD, idclientePD, DataPedidoD) VALUES
('1','9','2023-01-02 08:15:00'),
('2','4','2023-01-02 08:45:00'),
('3','8','2023-01-02 09:30:00'),
('4','9','2023-01-02 10:00:00'),
('5','7','2023-01-02 11:30:00'),
('6','1','2023-01-02 12:45:00'),
('7','6','2023-01-06 08:30:00'),
('8','9','2023-01-06 09:00:00'),
('9','6','2023-01-06 09:30:00'),
('10','4','2023-01-06 10:15:00'),
('11','6','2023-01-06 10:45:00'),
('12','5','2023-01-06 12:00:00'),
('13','8','2023-01-12 08:15:00'),
('14','1','2023-01-12 09:45:00'),
('15','7','2023-01-12 10:30:00'),
('16','9','2023-01-12 11:00:00')
Encontrando nome dos clientes que ainda não fizeram pedidos
SELECT cd.nomed
FROM ClientesDesafio cd
LEFT JOIN PedidosDesafio pd
on cd.idclienteD = pd.idclientePD
WHERE datapedidod is NULL;
Vi que minha resolução ficou diferente da do instrutor, mas da forma que fiz também está correto?