Clientes.cli_cgcpf = nota_fiscal.nfs_id_cliente PARA clientes.cli_cgcpf <>nota_fiscal.nfs_id_cliente

Boa Noite !

Pessoal, estou querendo selecionar todos os clientes de uma tabela e relacionar com outra, ok, consigo fazer isso ! ele pega o id da tabela cliente e comprara com id fk da tabela notas fiscais :
MAIS O QUE EU QUERO FAZER É : pegar todos os clientes que não tem NOTAS FISCAIS e Deletar !

COMO EU FAÇO ISSO ?

SELECT clientes.cli_cgcpf, clientes.cli_nome, nota_fiscal.nfs_id_cliente, clientes.cli_end, clientes.cli_cep, clientes.cli_city, clientes.cli_uf, clientes.cli_contat, clientes.cli_tipo, clientes.cli_areativ, clientes.cli_fone, clientes.cli_fax, clientes.cli_cxpost, clientes.cli_email, clientes.cli_insest, clientes.cli_celular, clientes.doido, clientes.id_serial FROM financeiro.clientes, financeiro.nota_fiscal WHERE clientes.cli_cgcpf = nota_fiscal.nfs_id_cliente;


TABELAS


[code]-- Table: financeiro.clientes

– DROP TABLE financeiro.clientes;

CREATE TABLE financeiro.clientes
(
cli_cgcpf character varying(14) NOT NULL,
cli_nome character varying(80),
cli_end character varying(80),
cli_cep character varying(10),
cli_city character varying(20),
cli_uf character varying(2),
cli_contat character varying(40),
cli_tipo character varying(2),
cli_areativ character varying(2),
cli_fone character varying(11),
cli_fax character varying(11),
cli_cxpost character varying(5),
cli_email character varying(80),
cli_insest character varying(15),
cli_celular character varying(11),
doido character varying(50),
id_serial serial NOT NULL,
CONSTRAINT cliente_pkey PRIMARY KEY (cli_cgcpf)
)
WITH (
OIDS=FALSE
);
ALTER TABLE financeiro.clientes OWNER TO root;
[/code]

[code]-- Table: financeiro.nota_fiscal

– DROP TABLE financeiro.nota_fiscal;

CREATE TABLE financeiro.nota_fiscal
(
nfs_id integer NOT NULL,
nfs_data_saida date,
nfs_id_cliente character varying(255),
nfs_nota_fiscal character varying(255),
nfs_numero_contrato character varying(255),
nfs_numero_processo character varying(255),
nfs_status integer,
nfs_tipo integer,
nfs_valor_total double precision,
nfs_cancelamento character varying(255),
nfs_desconto double precision,
nfs_obs character varying(255),
CONSTRAINT nota_fiscal_pkey PRIMARY KEY (nfs_id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE financeiro.nota_fiscal OWNER TO postgres;
[/code]

se tratando de um DELETE você pode fazer isso com o operador NOT IN …

acredito que isso seja uma correção que está fazendo na base de dados e não que o código vai fazer parte do seu sistema…
o NOT IN é péssimo para performance

Claudio Boa Noite !

Esse banco vem de 79, quer disser tem 31 anos, e mais velho que eu ! do clipppppper !

Agora vou da uma limpada !

Como ficaria o código ? poderia mostrar um exemplo ?

obrigado !

[quote]9.17.2. NOT IN

expression NOT IN (value[, …])
The right-hand side is a parenthesized list of scalar expressions. The result is “true” if the left-hand expression’s result is unequal to all of the right-hand expressions. This is a shorthand notation for

expression <> value1
AND
expression <> value2
AND
…[/quote]

Se eu faço isso:

SELECT clientes.cli_cgcpf, clientes.cli_nome, nota_fiscal.nfs_id_cliente, clientes.cli_end, clientes.cli_cep, clientes.cli_city, clientes.cli_uf, clientes.cli_contat, clientes.cli_tipo, clientes.cli_areativ, clientes.cli_fone, clientes.cli_fax, clientes.cli_cxpost, clientes.cli_email, clientes.cli_insest, clientes.cli_celular, clientes.doido, clientes.id_serial FROM financeiro.clientes, financeiro.nota_fiscal WHERE clientes.cli_cgcpf &lt;&gt; nota_fiscal.nfs_id_cliente;

DIS : sem memoria, trava a máquina…

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

travou tudo aqui…

e agora ?

você quer apagar todos clientes que não estejam na tabela de notas fiscais…

traduzido para sql:

delete from clientes where id_cliente not in (select id_cliente from notas_fiscais)

DELETE FROM financeiro.clientes WHERE cli_cgcpf NOT IN (SELECT nfs_id_cliente FROM financeiro.nota_fiscal);
SELECT * FROM financeiro.clientes WHERE cli_cgcpf NOT IN (SELECT nfs_id_cliente FROM financeiro.nota_fiscal)

 Obrigado Resolvir o problema ! agora tem um porém : como eu faço para jogar esses dados em uma tabela temperaria ?

se não for pedir de mais !

Obrigado mais uma fez !