MySQL - Mostrar resultados de consulta sql LEFT JOIN

   
Vista:

Mostrar resultados de consulta sql LEFT JOIN

Publicado por javier (1 intervención) el 25/03/2013 13:40:39
Hola a todos, tengo un problema a la hora de mostrar los resultados de una consulta de la forma que desearía.

Tengo 2 tablas para gestionar una cuenta bancaria, cuenta y cuentaDesglose.

La tabla cuenta contiene los siguientes campos: id, fecha, concepto,importe.
La tabla cuentaDesglose contiene los campos: id, idoperacion, subconcepto, subimporte.

La relación entre ambas es que "idoperacion" de cuentaDesglose identifica al "id" de la tabla cuenta.

No todas las operaciones de cuenta tiene que porque estar desglosado en la otra tabla, sólo aquellas que así lo requieran.

EJEMPLO

Tabla cuentas
id -----------------fecha-----------------------concepto-------------------------importe
1 ----------------- 05/12 ---------------------- Pago Luz ------------------------- -58,43
2 ----------------- 05/12 ---------------------- Ingreso recibos ---------------- 300 <<<----solo estará este desglosado
3 ----------------- 08/12 ---------------------- Telefonia -------------------------- -50,23
4 .....

Tabla cuentasDesglose
id -------- idoperacion ---------------- subconcepto ---------------- subimporte
1 ----------------- 2 --------------------- chapuza 1 --------------------- 100
2 ----------------- 2 --------------------- chapuza 2 ---------------------- 50
3 ----------------- 2 --------------------- chapuza 3 ---------------------- 150


La consulta que hago actualmente a la base de datos es la siguiente:

SELECT * FROM cuenta LEFT JOIN cuentaDesglose on cuenta.id = cuentaDesglose.idoperacion, obteniendo así el siguiente resultado:

id ------ fecha -------concepto ------ importe ----- id -----idoperacion -----subconcepto -------subimporte
1 ------ 05/12 ------- Pago Luz ----- -58,43 -----NULL---- NULL --------------NULL -------------------NULL
2 ------ 05/12 -- Ingreso recibos --- 300 ---------- 1--------- 2 -----------------chapuza 1 --------------- 100
2 ------ 05/12 -- Ingreso recibos --- 300 -----------2 -------- 2 -----------------chapuza 2 --------------- 50
2 ------ 05/12 -- Ingreso recibos --- 300 ---------- 3--------- 2 -----------------chapuza 3 --------------- 150
3 ------ 08/12 -- Telefonia --------- -50,23 ------- NULL -----NULL--------------NULL -------------------NULL
4 ....


Bien, el caso es que lo que pretendo es mostrar los resultados usando php es mostrar todos los conceptos principales de cuentas y si existe un desglose mostrar los subconceptos y subimportes debajo de este. Visualmente algo así:

fecha ------------------------- concepto ------------------------ importe
05/12 -------------------------- Pago Luz ---------------------- -58,43
05/12 -------------------------- Ingreso recibos -------------- 300
----------------->>> chapuza 1 ------------------- 100
----------------->>> chapuza 2 ------------------- 50
----------------->>> chapuza 3 ------------------- 150
08/12 -------------------------Telefonia --------------------------50,23


Es decir no quiero volver a tener que mostrar el concepto e importe principal por cada subimporte. No se si la única solución es tener una variable temporal que compruebe que se trata de un nuevo concepto principal o no, o si es mejor realizar otro tipo de consulta que no sea un LEFT JOIN.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder