Ajuda com consulta SQL PHP, mySQL
09/05/2012
0
Clientes: id_cli nome cpf email Fornecedores: if_for nome cpf email Caixa: id_cai (ID caixa, único) dataoco (Data do lançamento) operacao (Tipo Operação = Entradas, Saídas) vltotal (Valor Total Lançamento) documento (Nº Documento) idCli (Id Cliente) idFor (Id Fornecedor) obs (Obs da Operação)
Gostaria de selecionar os lançamentos do caixa e trazer o nome do cliente ou fornecedor a qual corresponde o lançamento.
Hoje uso esta consulta:
$sqlCaixa = mysql_query(SELECT * FROM caixa WHERE dataoco = $txtDataOco_en ORDER BY id_cai)
Ela me traz todos os lançamentos, mas no campo que seria idCli e idFor gostaria de trazer o nome dos mesmos.
Testei assim, mas não consegui trazer o nome.
SELECT X.*, C.NOME AS CLIENTES FROM CAIXA AS X INNER JOIN CLIENTES AS C ON X.idCli ORDER BY ID_CAI
Alguém poderia dar uma ajuda?
Adilson Rumao
Posts
10/05/2012
Luciano Martins
$sqlCaixa = mysql_query(SELECT c.nome, f.nome FROM caixa cx, fornecedores f, clientes c WHERE cx.dataoco = $txtDataOco_en ORDER BY cx.id_cai)
isso trará só os dois campos de nomes daí pra frente vc vai modelando do jeito q vc kiser
11/05/2012
Bruno Leandro
$sqlCaixa = mysql_query(SELECT c.nome, f.nome, cx.id_cai, cx.dataoco, cx.operacao, cx.vltotal, cx.documento
FROM caixa cx
inner join fornecedores f on f.if_for = cx.idFor
inner join clientes c on c.id_cli = cx.idCli
WHERE cx.dataoco = $txtDataOco_en
ORDER BY cx.id_cai)
11/05/2012
Adilson Rumao
Consegui resolver com esta consulta:
$sqlCaixa = mysql_query(SELECT caixa.*, clientes.nome_cli, fornecedores.nome_for FROM caixa LEFT JOIN clientes ON (caixa.idCli = clientes.id_cli) LEFT JOIN fornecedores ON (caixa.idFor = fornecedores.id_for) WHERE dataoco = $txtDataOco_en ORDER BY id_cai)
Estou usando Left Join, pois assim como na SQL do Bruno a minha me trazia uma consulta vazia. Usando Left ele me traz os campos vazios como tem que ser. Valew pela ajuda.
PS. não achei onde finalizar o Post.
16/05/2012
Ricardo Arrigoni
Caso o autor necessite que re-abra o tópico é só entrar em contato que o mesmo será re-aberto.
abs
16/05/2012
Paulo César
Clique aqui para fazer login e interagir na Comunidade :)