Skip to content
Daniel de Morais Compartilhe. Aprenda. Evolua.
Infocotidiano Infocotidiano

Meu dia-a-dia tecnológico

Infocotidiano
Infocotidiano

Meu dia-a-dia tecnológico

SQL para consultar pedidos sem item ou itens órfãos

Daniel Morais, 20152019
Quem nunca precisou comparar registros entre duas tabelas ?
Exemplo: pedidos que não tem item cadastrado ou Itens que não possuem Pedido.


Pois é, ao invés de criar um programa (while…for) e varrer o banco inteiro, podemos criar uma consulta SQL (Consulta Estruturada).



Vou dar um exemplo simples de uma consulta SQL; Imagine sua tabela de pedidos (chave primaria NoPEDIDO) com 20.000 registros e uma tabela que contem os itens do pedido (chave primária IdPEDIDO) com 120.000 registros. (Pois cada pedido contém “n” registros)

Precisamos saber se todos os 20.000 pedidos contém itens, caso exista pedidos sem item, vamos apagá-los.



Para CONSULTAR, use a seguinte SQL:
Select * from TbPEDIDO where NoPEDIDO not in (select IdPEDIDO from TbITEM)


Entendendo a consulta acima:


Nome da tabela de pedido: TbPEDIDO
Nome do campo chave: NoPEDIDO
Nome da Tabela item do pedido: TbITEM
Nome do campo chave: IdPEDIDO

O resultado da consulta vai exibir TODOS os pedidos que NÃO CONTÉM ITEM (com a chave igual do pedido.)

Para DELETAR, use a seguinte SQL:
delete from TbPEDIDO where NoPEDIDO not in (select IdPEDIDO from TbITEM)

O resultado da consulta vai APAGAR TODOS os pedidos que NÃO CONTÉM ITEM.

Itens Órfãos:
Itens órfãos são itens que não possuem pedidos (por algum motivo foi deletado ou corrompido)

Consulta de Itens órfãos:
select * from TbITEM where IdPEDIDO not in (select NoPEDIDO from TbPEDIDO)

Deletar itens órfãos:


delete from TbITEM where IdPEDIDO not in (select NoPEDIDO from TbPEDIDO)


Se este post foi útil para você, ajude a divulgar meu trabalho! Curta minha página no facebook !

Banco de Dados Dicas Todos

Navegação de Post

Previous post
Next post

Comment

  1. josiel jantara disse:
    2020 às

    preciso fazer um consulta de clientes que nao compram determinados produto , esta muito lento pois estou fazendo com while e next
    devo ter uns 200 mil item , os produtos nao sao muitos pois são por representada maximo uns 500 cada representada as vezes muito menos uns 50 vi varios mais nenhum funciona ate trava

    tenho pedido
    cliente
    representada
    datapedido
    –
    produto
    produtocodigo
    –
    item
    representada
    cliente
    produto

    Acesse para responder

Deixe um comentário Cancelar resposta

Você precisa fazer o login para publicar um comentário.

Pesquisa

ACBr acbr lazarus ACBRposprinter antivirus antivirus gratuito apagar atualizar AVG AVG FREE banco de dados chave estrangeira consulta create table criar tabela crosscompile cross compile cross compiling dbgrid delphi Dia do ACBr filtro flutter foreign key horse impressora de cupom instalar join lazarus Lazarus Streaming Day linux MariaDB mysql parametros pesquisa incremental pesquisa multipla PostGreSQL primary key Python query RDW rxdbgrid sql server update views where

  • Python para Programador Pascal – Parte #1
  • Monitora – Desenhe e monitore sua rede doméstica ou escritório. Escrito em Lazarus/FPC.
  • Crie seu projeto Lazarus/fpc a partir das tabelas do seu banco de dados.
  • Instalando o Node.js e Gerenciando Dependências no Windows
  • Introdução a Classes em Python, cliente
  • Dica Python: Como separar Listas de Forma Elegante
  • Python #01 – Instalando Python e Studio Code no Linux
  • Entendendo Operadores de Comparação Python
  • Entendendo os Operadores Aritméticos em Python
  •  IntraWeb no Lazarus – Primeiros Passos
  • Utilizando Interpose Class no Lazarus
  • Antivírus Gratuitos DEZ2024
  • Operadores em Python
©2026 Infocotidiano | WordPress Theme by SuperbThemes