Como faço essa consulta SQL?
Ola.
Eu tenho duas tabelas:
veja:
E tenho um formulario de pesquiza de devedores.
Ele lista assim:
O que eu quero fazer é o seguinte:
na hora de listar os devdores, se o Cliente do qual ele é devedor tiver cadastrado com bloqueio=S na abela de clientes,ai ele não retorna os devedores desse cliente.
Na tabela de devedores, quando o devedor esta sendo cadastrado, ele recebe o id do cliente na tabela de devedores.
só esse atrelamento existe entre o devedor e a pessoa a quemele deve.
Mas busca é feita na tabela de devedores.
cada cliente tem seus devedores
Agora eu quero fazer um consulta dizendo para seleionar tudo da tabela devedores onde o cliente=1 porem só selecione se o cliente não tiver o fileld(campo) bloqueio=´N´
O problema é que nehum campo da teabela devedores faz referencia a condição de bloqueio da tabala de cliente
tentei assim mas num deu:
Eu tenho duas tabelas:
veja:
CREATE TABLE IF NOT EXISTS clientes ( id int(4) unsigned NOT NULL auto_increment, pessoa char(1) DEFAULT ´´ , fantasia varchar(120) DEFAULT ´0´ , nome varchar(120) DEFAULT ´0´ , rasao varchar(120) DEFAULT ´0´ , cnpj varchar(50) DEFAULT ´0´ , ie varchar(50) DEFAULT ´0´ , cpf varchar(50) DEFAULT ´0´ , rg varchar(50) DEFAULT ´0´ , endereco varchar(200) DEFAULT ´´ , numero varchar(20) , complemento varchar(20) , bairro varchar(80) , cidade varchar(80) , uf char(2) , cep varchar(15) , email varchar(30) , tel1 varchar(15) , tel2 varchar(15) , tel3 varchar(15) , atividade varchar(100) , comissao varchar(4) , comissao2 varchar(4) , comissao3 varchar(4) , login varchar(4) , senha varchar(4) , bloqueio char(1) , filial varchar(4) , PRIMARY KEY (id) );
CREATE TABLE IF NOT EXISTS devedores ( Id int(4) unsigned NOT NULL auto_increment, pessoa varchar(100) , fantasia varchar(100) , razao varchar(100) , cnpj varchar(50) , ie varchar(50) , nome varchar(100) , cpf varchar(50) , rg varchar(50) , pai varchar(100) , paicpf varchar(50) , mae varchar(100) , maecpf varchar(50) , trabalho varchar(100) , teltrabalho varchar(100) , endereco varchar(100) , numero varchar(20) , complemento varchar(20) , bairro varchar(100) , cidade varchar(100) , UF varchar(50) , cep varchar(10) , email varchar(100) , potencial varchar(20) , cliente varchar(4) , filial varchar(4) , PRIMARY KEY (Id) );
E tenho um formulario de pesquiza de devedores.
Ele lista assim:
devedor: Fulano cliente: firma tal devedor: Bertano cliente: firma tal devedor: Cicrano cliente: firma tanto devedor: Telprano cliente: firma faz devedor: Joselio
O que eu quero fazer é o seguinte:
na hora de listar os devdores, se o Cliente do qual ele é devedor tiver cadastrado com bloqueio=S na abela de clientes,ai ele não retorna os devedores desse cliente.
Na tabela de devedores, quando o devedor esta sendo cadastrado, ele recebe o id do cliente na tabela de devedores.
só esse atrelamento existe entre o devedor e a pessoa a quemele deve.
Mas busca é feita na tabela de devedores.
cada cliente tem seus devedores
Agora eu quero fazer um consulta dizendo para seleionar tudo da tabela devedores onde o cliente=1 porem só selecione se o cliente não tiver o fileld(campo) bloqueio=´N´
O problema é que nehum campo da teabela devedores faz referencia a condição de bloqueio da tabala de cliente
tentei assim mas num deu:
$Resultado = mysql_query("SELECT * FROM devedores left JOIN clientes on clientes.bloqueio=´N´ WHERE devedores.cliente=´$id_cliente´ and devedores.filial = ´1´ and devedores.baixa= ´N´ order by d.cod");Carcleo
Curtidas 0
Respostas
Emerson Nascimento
20/09/2008
primeira coisa: a sua modelagem não está padronizada... o correto seria o campo cliente da tabela devedores ser do mesmo tipo do campo id da tabela clientes.
veja se essa instrução te ajuda:
$Resultado = mysql_query(´SELECT * FROM devedores INNER JOIN clientes on (clientes.id = devedores.cliente and clientes.bloqueio<>´N´) WHERE devedores.filial = ´1´ and devedores.baixa= ´N´ order by d.cod´);
CREATE TABLE IF NOT EXISTS devedores ( Id int(4) unsigned NOT NULL auto_increment, pessoa varchar(100) , fantasia varchar(100) , razao varchar(100) , cnpj varchar(50) , ie varchar(50) , nome varchar(100) , cpf varchar(50) , rg varchar(50) , pai varchar(100) , paicpf varchar(50) , mae varchar(100) , maecpf varchar(50) , trabalho varchar(100) , teltrabalho varchar(100) , endereco varchar(100) , numero varchar(20) , complemento varchar(20) , bairro varchar(100) , cidade varchar(100) , UF varchar(50) , cep varchar(10) , email varchar(100) , potencial varchar(20) , cliente INT(4), -- campo do mesmo tipo da tabela ´origem´ filial varchar(4) , PRIMARY KEY (Id) );
veja se essa instrução te ajuda:
$Resultado = mysql_query(´SELECT * FROM devedores INNER JOIN clientes on (clientes.id = devedores.cliente and clientes.bloqueio<>´N´) WHERE devedores.filial = ´1´ and devedores.baixa= ´N´ order by d.cod´);
GOSTEI 0
Carcleo
20/09/2008
Obrigado.
Funcionou
Funcionou
GOSTEI 0