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

Obtener datos de una tablas segun un campo

Estas en el tema de Obtener datos de una tablas segun un campo en el foro de Mysql en Foros del Web. Estimado colegas, quisiera saber si puedo hacer una consulta a mysql donde le paso un campo de una tabla y entonces que me haga un ...
  #1 (permalink)  
Antiguo 21/05/2009, 14:52
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Pregunta Obtener datos de una tablas segun un campo

Estimado colegas, quisiera saber si puedo hacer una consulta a mysql donde le paso un campo de una tabla y entonces que me haga un select de esa tabla que contiene ese campo, el campo que le paso a mysql es una clave foranea.

Me explico mejor lo que quiero hacer. Por ejemplo:

Tengo la tabla función que almacena el tipo de usurio administrativo y tengo la tabla usuarios, de la tabla función le asigno su campo llave a la tabla usuario, convirtiendose esta en una clave foranea.

Entonces quiero pasarle a mysql este campo y me haga un select de la tabla que contenga a este campo como campo Key.

Si es posible hacer esto, ¿Cómo quedaría la consulta?
  #2 (permalink)  
Antiguo 22/05/2009, 05:35
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Obtener datos de una tablas segun un campo

Yo no te entiendo...

Quim
  #3 (permalink)  
Antiguo 22/05/2009, 06:35
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Obtener tabla segun un campo FOREIGN KEY

Colega lo que quiero es pasar un campo que es FOREIGN KEY, para entonces hacer una consulta a la base datos donde la consulta busque a que tabla pertenece ese campo FOREIGN KEY que le estoy pasando, que en ese caso cuando encuentre la tabla, el campo sería el PRIMARY.
  #4 (permalink)  
Antiguo 22/05/2009, 06:48
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Obtener datos de una tablas segun un campo

Ahora!!!

Bien no se si se podrà hacer.... estara por los metadatos... esperemos que el campo se llame igual en la tabla donde es FOREIGN KEY que en la tabla donde es PRIMARY ....

Quim
  #5 (permalink)  
Antiguo 22/05/2009, 07:04
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Obtener datos de una tablas segun un campo

Chapter 19. INFORMATION_SCHEMA Tables

Si esta debe estar aqui

19.13. The INFORMATION_SCHEMA KEY_COLUMN_USAGE Table


...
REFERENCED_TABLE_SCHEMA, REFERENCED_TABLE_NAME, and REFERENCED_COLUMN_NAME were added in MySQL 5.0.6.
...

esta...esta!!!

Quim

Última edición por quimfv; 22/05/2009 a las 07:09
  #6 (permalink)  
Antiguo 22/05/2009, 08:18
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Obtener datos de una tablas segun un campo

En la dirección recomendada por quimfv, puedes leer esto en los comentarios de Usuarios (pon los datos de tu base, tablas y columna o campo donde corresponde. No lo he probado:
Cita:
User Comments
Posted by James Goatcher on May 27 2008 6:36pm [Delete] [Edit]

A quick way to list your FKs (Foreign Key references) using the KEY_COLUMN_USAGE view:
Código sql:
Ver original
  1. SELECT CONCAT( TABLE_NAME, '.',
  2. column_name, ' -> ',
  3. referenced_table_name, '.',
  4. referenced_column_name ) AS list_of_fks
  5. FROM information_schema.KEY_COLUMN_USAGE
  6. WHERE REFERENCED_TABLE_SCHEMA = (your schema name here)
  7. AND REFERENCED_TABLE_NAME IS NOT NULL AND REFERENCED_COLUMN_NAME = nombrecampo
  8. ORDER BY TABLE_NAME, COLUMN_NAME;
Cita:
This query does assume that the constraints and all referenced and referencing tables are in the same schema.
Le he añadido
AND REFERENCED_COLUMN_NAME = nombrecampo

Haz algunas pruebas

Última edición por jurena; 22/05/2009 a las 08:25
  #7 (permalink)  
Antiguo 22/05/2009, 20:17
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Pregunta Respuesta: Obtener datos de una tablas segun un campo

jurena, podrías ayudarme un poco más con tú código, me refiero a que donde pongo mis datos en esa consulta.
  #8 (permalink)  
Antiguo 22/05/2009, 23:54
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Obtener datos de una tablas segun un campo

Prueba esto, que he adaptado a tu búsqueda. Te ofrece en el concat el nombre de la tabla y el campo foreign key, seguido de -> y luego el del nombre de la tabla donde se halla la primary key y el nombre de ese campo.

Código sql:
Ver original
  1. SELECT CONCAT( TABLE_NAME, '.', column_name, ' -> ', referenced_table_name, '.', referenced_column_name ) AS list_of_fks
  2. FROM information_schema.KEY_COLUMN_USAGE
  3. WHERE REFERENCED_TABLE_SCHEMA = 'nombrebasedatos'
  4. AND REFERENCED_TABLE_NAME IS NOT NULL
  5. AND COLUMN_NAME = 'nombrecampoforeignkey'
  6. ORDER BY TABLE_NAME, COLUMN_NAME

Echa un vistazo a la tabla key_column_usage dentro de la base information_schema, lo entenderás todo mucho mejor con datos concretos de tus bases y tablas.
  #9 (permalink)  
Antiguo 24/05/2009, 05:50
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
De acuerdo Respuesta: Obtener datos de una tablas segun un campo

Gracias colega, parece que ahora si doy con la consulta, ahora voy a ajustarla a lo que quiero obtener, cualquier duda lo posteo para que me ayuden.
  #10 (permalink)  
Antiguo 24/05/2009, 06:46
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Pregunta Respuesta: Obtener datos de una tablas segun un campo

Jurena, colega, ya me apareció la primera duda, esta consulta me devuelve un resultado, que sería la tabla a la que pertenece el campo foraneo, ahora bien, como le digo a MySQL que segun la tabla encontrada, me seleccione de ella todos los campos, pero que esta vez haga la selección de los datos que se encuentran en mi base datos.
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 16:48.