• Domingo 28 de Abril de 2024, 17:10

Autor Tema:  Agregar Un Campo Al Hacer Un Select... Y El Union  (Leído 1590 veces)

prueba2306

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Agregar Un Campo Al Hacer Un Select... Y El Union
« en: Viernes 7 de Julio de 2006, 19:03 »
0
Hola  :hola:
Tengo un pequeño problema al querer una consulta con el UNION...

Tengo 2 tablas (les llamaré TA y TB, creados por alguien más, no por mí) y los dos comparten algunos datos comunes y otros no (sí, suena obvio, lo sé)  :huh: , por ejemplo:

TA: id, nombre, monto, concepto, moneda, zona...
TB: id, nombre, monto, control, bandera...

Necesito hacer una consulta (en un solo query) la unión de estas 2 tablas con sus campos comunes (en este caso id, nombre, monto) pero además necesito un campo con el cual yo pueda identificar de que tabla vienen (es decir, si es de TA o TB) para poderlos desplegar en una forma común, algo así:

Tabla que despliego:  :ph34r:
id, nombre, monto, TA
id, nombre, monto, TB
id, nombre, monto, TB
id, nombre, monto, TA

Necesito poder hacerlo en una consulta porque uso un programa servidor entre la base de datos y el cliente (Algo así: BD <-> Servidor <-> Cliente) y sería muy pesado para el servidor estar haciendo consultas por cada tabla que hay, juntarlas y enviarlas (ya que este programa haces algunas operaciones complejas y no quiero "sobrecargarlo"  :devil: , mejor que lo de juntar las tablas lo haga el MySQL)

Gracias de antemano por cualquier ayuda que me puedan facilitar.
Saludos.  :hola:

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Agregar Un Campo Al Hacer Un Select... Y El Union
« Respuesta #1 en: Viernes 7 de Julio de 2006, 20:02 »
0
Supongamos que en la TablaA (TA) hay un campo llamado 'ape', y en la TablaB (TB) hay un campo llamado 'tel'
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]SELECT[/color] TA.id, TA.nombre, TA.monto, TB.id, TB.nombre, TB.monto, TA.ape AS 'Pertenece TablaA', TB.tel AS 'Pertenece TablaB'
FROM TablaA AS TA, TablaB AS TB
WHERE TA.id = TB.id
--AND lo que quieras agregar, etc, etc <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
Ojala te sirva.
Chao
El pasado son solo recuerdos, el futuro son solo sueños

prueba2306

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Agregar Un Campo Al Hacer Un Select... Y El Union
« Respuesta #2 en: Miércoles 19 de Julio de 2006, 22:03 »
0
Cita de: "RadicalEd"
Supongamos que en la TablaA (TA) hay un campo llamado 'ape', y en la TablaB (TB) hay un campo llamado 'tel'
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]SELECT[/color] TA.id, TA.nombre, TA.monto, TB.id, TB.nombre, TB.monto, TA.ape AS 'Pertenece TablaA', TB.tel AS 'Pertenece TablaB'
FROM TablaA AS TA, TablaB AS TB
WHERE TA.id = TB.id
--AND lo que quieras agregar, etc, etc <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
Ojala te sirva.
Chao
Creo que no me expliqué bien... necesito hacer la UNION de esas dos tablas, no un cruce.

Es decir, si de la TA obtengo id, nombre y monto; y de TB obtengo id, nombre y monto; necesito poder juntarlos (con un UNION) a una sola tabla, pero también necesito que tenga un campo que identifique de que tabla viene.

Un ejemplo má gráfico sería:

TA
id, nombre, monto

TB
id, nombre, monto

TResultante
id, nombre, monto, pertenece_a

Si yo aplico el query que me das, la tabla resultante sería:

TResultante
TA.id, TA.nombre, TA.monto, TB.id, TB.nombre, TB.monto, Pertenece TablaA, Pertenece TablaA

Lo cual 1) no me permite saber a que tabla pertenecen cada dato los datos además de que están revueltos y 2) las dos tablas no tienen la misma cantidad de datos por lo que se perderían algunos si aplico al TA.id=TB.id.

Para ser un poco más específico tengo estas dos tablas

TPagos: id, nombre, monto, zona_pago, fecha_hora
TCargos: id, nombre, monto, fecha_hora

Las cuales tengo que obtener una tabla con el siguiente formato:

TMovimientos: id, nombre, monto, tipo [si es pago o cargo]

Al momento de desplegarlo necesito "colorear" si son cargos (en verde) o si son cargos (en rojo) pero necesito tener un campo que me ayude a identificar que son.

Gracias por la ayuda de todas maneras.