Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Que en una consulta multitabla aparezca un nuevo campo con el nombre de cada tabla

Estas en el tema de Que en una consulta multitabla aparezca un nuevo campo con el nombre de cada tabla en el foro de Bases de Datos General en Foros del Web. Hago lo siguiente: select id from cachivache where localizacion=1 UNION select id from lavadora where localizacion=1 Esto, lógicamente me devuelve una serie de registros, de ...
  #1 (permalink)  
Antiguo 06/09/2005, 14:54
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 3 meses
Puntos: 6
Que en una consulta multitabla aparezca un nuevo campo con el nombre de cada tabla

Hago lo siguiente:

select id from cachivache where localizacion=1 UNION select id from lavadora where localizacion=1

Esto, lógicamente me devuelve una serie de registros, de una sola columna que es la id. Pero la id a solas no me vale, tengo que tenerla relacionada con la tabla.

Lo que quiero hacer es que "cachivache" y "lavadora", los nombres de las tablas, aparezcan también en esa consulta en una segunda columna, al lado de la id. ¿Es esto posible?
  #2 (permalink)  
Antiguo 06/09/2005, 14:56
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 3 meses
Puntos: 6
En resumen, lo que quiero es crear un campo virtual o ficticio (nombre_tabla), en el que se incluyan los nombres de las tablas (para ello tendré que usar una variable, me imagino).

¿Cómo se haría? (pues no controlo de variables ni de cómo crear campos nuevos que aparezcan sólo en el resultado de la consulta).
  #3 (permalink)  
Antiguo 06/09/2005, 17:09
Avatar de onlykfk  
Fecha de Ingreso: agosto-2005
Ubicación: 20°45' Latitud Norte 100°
Mensajes: 121
Antigüedad: 18 años, 8 meses
Puntos: 1
(select id, 'cachivache' As NombreTabla from cachivache where localizacion=1) UNION (select id, 'lavadora' As NombreTabla from lavadora where localizacion=1)
__________________
Yo tan sólo se, que no he senado
  #4 (permalink)  
Antiguo 06/09/2005, 19:44
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 3 meses
Puntos: 6
¡Eso era, gracias!
  #5 (permalink)  
Antiguo 07/09/2005, 14:43
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 3 meses
Puntos: 6
Una duda más: quiero hacer EXACTAMENTE LO MISMO a lo que en esa sentencia, sólo que, en lugar de añadir una columna que sea un texto, añadir una columna en la que ponga un valor obtenido de otra tabla (este valor se obtendría como "select valor2 from tabla2 where id='cachivache'). ¿Se puede?
  #6 (permalink)  
Antiguo 07/09/2005, 14:58
Avatar de onlykfk  
Fecha de Ingreso: agosto-2005
Ubicación: 20°45' Latitud Norte 100°
Mensajes: 121
Antigüedad: 18 años, 8 meses
Puntos: 1
Ke motor de BD estas usando?
Si es en SQL Server si se admiten subqueries en una consulta, en MySQL nunca lo he intentado?
Seria mas o menos asi:
(select id, (select valor2 from tabla2 where id='cachivache') As NombreTabla from cachivache where localizacion=1)
UNION
(select id, 'Un valor equis' As NombreTabla from lavadora where localizacion=1)
Pero ojo: debes especificar un where en el subquery o de lo contrario te va a arrojar error

Saludos...
__________________
Yo tan sólo se, que no he senado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:30.