Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Resolução do desafio

Pessoal, resolvi o desafio um pouco diferente da solução proposta. Daí, tenho duas dúvidas que surgiram ao ver as respostas dos colegas no fórum. Gostaria de saber se o meu estaria certo e se os meus questionamentos são válidos.

SELECT C.ID, C.NOME, P.ID
    FROM TABCLIENTES AS C 
LEFT JOIN TABPEDIDOS AS P ON P.IDCLIENTE = C.ID
WHERE P.ID IS NULL 
  1. Na resposta do Gabriel Viana em 17/05, O LEFT JOIN dele menciona primeiro a tabela de clientes então traria primeiro todos os resultados das tabelas de clientes para depois trazer o correspondente da tabela de pedidos. Fiz o contrário, essa diferença poderia impactar apenas na performance do script ?

  2. Já na resposta do Christian Ferreira em 04/04, ele seleciona a coluna "nome" da tabela de pedidos. No desafio, essa coluna existe apenas na Tabela "Clientes". Para este cenário o resultado daria erro ?

1 resposta
solução!

Ooi, Ingrid! Tudo bem?

Sua atividade está correta! Parabéns e obrigada por compartilhar a sua resolução com a comunidade! :)

Agora, vamos às suas dúvidas:

  1. A ordem das tabelas no LEFT JOIN é importante porque ela define qual tabela será a "principal" (ou a tabela da esquerda). No seu script, você quer encontrar clientes que não têm pedidos, então faz sentido que TABCLIENTES seja a tabela principal. A diferença na performance pode ocorrer dependendo do tamanho das tabelas e dos índices disponíveis, mas, em geral, a lógica do seu script está correta e a diferença de performance não deve ser significativa para um banco de dados de tamanho moderado.
  2. Se a coluna "nome" existe apenas na tabela Clientes e você tentar selecioná-la da tabela Pedidos, isso resultará em um erro de execução. No caso do Christian Ferreira, se ele tentou selecionar a coluna "nome" da tabela Pedidos (onde essa coluna não existe), o SQL retornará um erro, pois a coluna não pode ser encontrada na tabela especificada.

Desejo sucesso! Continue firme nos estudos! ✨✨

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!