Tengo una base de datos desde la cual deseo listar el detalle de cuenta corriente de cliente.
Mi estructura es la siguiente:
PAGO(idpago,fecha,idcliente,monto) DETALLETICKET(idticket,idproducto,cantidad,preciou);
el idcliente lo tengo en la tabla ticket. Trabajo con Mysql y php y ademas uso DataTables de JQuery.
Hice lo siguiente:
SELECT * FROM
ticket,detalleticket,producto,pago,movimiento,tipomov
where ticket.idc=8
AND detalleticket.idticket=ticket.idticket
and producto.idproducto=detalleticket.idproducto
and pago.idcliente=ticket.idc
and movimiento.idcliente=ticket.idc
and movimiento.tipomov=tipomov.idtipomov;
como veran para cada ticket repite el movimiento.
Es decir si un cliente compra 4 articulos se insertan 4 registros en detalleticket. Pero si pago con tarjeta supongamos se mete un registro de pago de tipo tarjeta, pero el pago es uno solo.
La idea mia es armar una sola tabla con debe y haber entonces necesito todo en una consulta. De lo contrario podria concatenar array con php de las consultas?
Utilizando left join hago asi:
SELECT * FROM ticket left join detalleticket on ticket.idticket=detalleticket.idticket left join producto on producto.idproducto=detalleticket.idproducto left join pago on pago.idcliente=ticket.idc left join movimiento on movimiento.idcliente=ticket.idc LEFT JOIN tipomov on tipomov.idtipomov=movimiento.tipomov where ticket.idc=8;
Igual me muestra tres veces todos los mismos registros, de hecho hay tres registros de movimientos asociados al cliente. Si el cliente paga un poco con tarjeta y otro poco en efectivo se guardan dos registros en la tabla movimiento con el mismo idticket. Como podria hacer