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

Como saber de que tabla viene un registro

Estas en el tema de Como saber de que tabla viene un registro en el foro de Mysql en Foros del Web. Hola a todos, la cuestión es la siguiente. En esta consulta SELECT nombre FROM tabla1, tabla2; Cómo saber de cual de las dos tablas viene ...
  #1 (permalink)  
Antiguo 10/02/2013, 13:51
 
Fecha de Ingreso: marzo-2003
Ubicación: Algeciras
Mensajes: 15
Antigüedad: 21 años, 1 mes
Puntos: 0
Como saber de que tabla viene un registro

Hola a todos, la cuestión es la siguiente. En esta consulta

SELECT nombre FROM tabla1, tabla2;

Cómo saber de cual de las dos tablas viene un nombre sin tener que añadir un campo a cada tabla con el nombre de la tabla, lo que repetiría hasta la saciedad en cada registro el dato tabla1 en los registros de la tabla1 y tabla2 en los registros de la tabla2. No sé si me explico bien.

En un principio he pensado crear un campo en ambas tablas llamado por ejemplo 'tabla', y en una le pongo el valor 1 y en la otra el valor 2, así, cuando consulte los registros de ambas tablas sabré que si el campo tabla es 1 pertenece a la tabla 1 y si es 2 pertenece a la tabla 2. burdo pero funciona.

Pero mi duda es si existe una forma para saber a qué tabla pertenece sin tener que crear este campo añadido.

Un saludo a todos.

Última edición por juanjo3691; 10/02/2013 a las 14:27
  #2 (permalink)  
Antiguo 10/02/2013, 14:34
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Como saber de que tabla viene un registro

A ver,aunque se puede resolver de muchas maneras y, salvo que nos ofrezcas alguna explicación sobre la necesidad de saber a qué tabla pertenece, te daré alguna solución. Naturalmente, no tienes que almacenar eso. El nombre de la tabla lo sabes y lo puedes recuperar de muchas maneras. Para empezar lo escribes en la consulta. Si usas UNION ALL y un alias para el nombre lo tendrás.
Código MySQL:
Ver original
  1. SELECT nombre, 'tabla1' tabla FROM tabla1
  2. SELECT nombre, 'tabla2' FROM tabla2
  #3 (permalink)  
Antiguo 10/02/2013, 14:35
 
Fecha de Ingreso: enero-2008
Mensajes: 201
Antigüedad: 16 años, 3 meses
Puntos: 39
Respuesta: Como saber de que tabla viene un registro

Me gustaría saber la necesidad de saber la tabla de la que viene la información, de todas formas la solución que planteas no funcionaría ya que según la consulta que has puesto tendrías 2 campos tabla uno con el valor 1 y otro con el valor 2, si no te da error al leer el campo, no tienes garantía de que tabla es. Esto es así si no me equivoco. Si puedes decir que contiene cada tabla y que es lo que esperas obtener podría ayudarte más.
  #4 (permalink)  
Antiguo 10/02/2013, 14:50
 
Fecha de Ingreso: marzo-2003
Ubicación: Algeciras
Mensajes: 15
Antigüedad: 21 años, 1 mes
Puntos: 0
Respuesta: Como saber de que tabla viene un registro

Bien, me explico. Una tabla CLIENTES tiene estos campos:
ID INT, FECHA VARCHAR, ESTADO BOOLEAN, NOMBRE VARCHAR, EMAIL VARCHAR.
La segunda tabla PEDIDOS tiene éstos:
ID INT, FECHA VARCHAR, ESTADO BOOLEAN, NUMEROPEDIDO INT, TOTALPEDIDO DOUBLE.

Como verás ambas tablas tienen campos coincidentes, pero también tienen otros en los que difieren.

La cuestión es crear un sistema de notificaciones que en una sola consulta reúna las inserciones de ambas para notificarlas al interesado, y recibir así un listado de notificaciones ordenado por fecha en que se comunica tanto una inserción de un cliente como de un pedido.
  #5 (permalink)  
Antiguo 10/02/2013, 14:59
 
Fecha de Ingreso: marzo-2003
Ubicación: Algeciras
Mensajes: 15
Antigüedad: 21 años, 1 mes
Puntos: 0
Respuesta: Como saber de que tabla viene un registro

Disculpa mi ignorancia, creo que UNION ALL es lo que buscaba, y nunca lo había usado. Gracias por la solución.
  #6 (permalink)  
Antiguo 10/02/2013, 15:50
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Como saber de que tabla viene un registro

juanjo3691,
ahora soy yo quien no lo tiene tan claro. Si la tabla pedidos está relacionada con la tabla clientes, es decir, los pedidos son de clientes, no veo la relación. Y otra cosa: si pusieras algún ejemplo con datos concretos de lo que tienes y quieres sacar, seguro que podríamos ayudarte mejor.
  #7 (permalink)  
Antiguo 10/02/2013, 16:04
 
Fecha de Ingreso: marzo-2003
Ubicación: Algeciras
Mensajes: 15
Antigüedad: 21 años, 1 mes
Puntos: 0
Respuesta: Como saber de que tabla viene un registro

Vuelvo a pedir disculpas por el mal ejemplo que he puesto. En realidad en vez de clientes debería de haberse llamado relaciones, y recibe ids de una tabla de clientes y también los ids de una tabla de establecimientos, relacionando así clientes con establecimientos. Por el otro lado está la tabla de pedidos, que relaciona los ids de los pedidos de cualquier establecimiento con los ids de los clientes. Así, el sistema de notificaciones debería de avisar tanto de la inserción de un cliente nuevo en un establecimiento cualquiera, como de la inserción de un pedido nuevo a establecimiento por parte de un cliente. No sé si os estoy liando más, pero aparte de confundiros os digo que me habéis dado la solución que me hacía falta. Un saludo, y realmente agradecido.

Etiquetas: registro, registros, select, tabla
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 05:48.