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

relacionar tablas en mi base de datos

Estas en el tema de relacionar tablas en mi base de datos en el foro de Mysql en Foros del Web. a ver si se explicarme amigos: tengo una base de datos con las tablas login(id, email, password), questions(id, question). Quiero mostrar las preguntas (question) que ...
  #1 (permalink)  
Antiguo 14/12/2012, 19:19
 
Fecha de Ingreso: junio-2007
Mensajes: 16
Antigüedad: 17 años, 5 meses
Puntos: 0
relacionar tablas en mi base de datos

a ver si se explicarme amigos: tengo una base de datos con las tablas login(id, email, password), questions(id, question).

Quiero mostrar las preguntas (question) que haya realizado determinado email del login (email).

He supuesto que tendré que relacionar tablas, pero estoy usando como gestor SEQUEL pro en mac y relaciono question con email y me tira el siguiente error: The specified relation was unable to be created.

MySQL said: Can't create table . errno 150

Si la forma es relacionando tablas, me podeis explicar como se hace? si no hay que relacionarlas, como se haría? un saludo y gracias.
  #2 (permalink)  
Antiguo 15/12/2012, 04:48
 
Fecha de Ingreso: junio-2007
Mensajes: 16
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: relacionar tablas en mi base de datos

nadie sabe?
  #3 (permalink)  
Antiguo 15/12/2012, 05:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: relacionar tablas en mi base de datos

Todos sabemos, pero las soluciones que te daremos son a puro SQL.
¿Estas dispuesto ha hacerlo? Si es así, empieza por darnos la estructura de las tablas que relacionarás (los CREATE TABLE), dinos si las tablas ya tienen datos y como creó la consulta ese front end.
También sería bueno saber que sabes tu sobre las FK.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 15/12/2012 a las 05:57
  #4 (permalink)  
Antiguo 15/12/2012, 06:17
 
Fecha de Ingreso: junio-2007
Mensajes: 16
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: relacionar tablas en mi base de datos

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Todos sabemos, pero las soluciones que te daremos son a puro SQL.
¿Estas dispuesto ha hacerlo? Si es así, empieza por darnos la estructura de las tablas que relacionarás (los CREATE TABLE), dinos si las tablas ya tienen datos y como creó la consulta ese front end.
También sería bueno saber que sabes tu sobre las FK.
Me he enterado de bastante poco sinceramente. Las tablas ahora mismo las tengo vacías, no hay datos. Tengo dos tablas: 'login' (id, email, password) y 'preguntas' (id, pregunta).

Mi objetivo es poder guardar/mostrar las preguntas que ha hecho un determinado usuario, determinado por el email de la tabla 'login'.
  #5 (permalink)  
Antiguo 15/12/2012, 06:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: relacionar tablas en mi base de datos

Mira, el problema de la consulta, o de lo que quieres mostrar, no es lo más importante ni lo más complejo.
Eso se resuelve simplemente con un INNER JOIN:
Código MySQL:
Ver original
  1. SELECT a, b, c, d
  2. FROM tabla1 T1 INNER JOIN tabla2 T2 ON T1.email = T2.email
  3. WHERE [condiciones que quieras]
Pero el hecho de que no puedas crear las FK nos sugiere que hay un problema estructural en las tablas que lo impide. Tienes que resolver primero eso, y sólo podremos tener una idea clara de lo que pasa cuando nos des los datos que te pedimos:
1) CREATE TABLE de cada tabla implicada.
2) Cómo creó (sintaxis completa) el front-end que usas el ALTER TABLE para generar la FK.

Eso sólo para empezar.

Te explico anticipadamente un detalle: dos campos A y B pertenecientes a tablas diferentes y relacionados, pueden llegar a contener el mismo tipo de datos y aún así no poderse relacionar como FK si:
1) El campo origen en la tabla origen no es PK o UNIQUE.
2) Son exactamente del mismo tipo de columna y longitud (numeros, fechas, cadenas.
3) Tienen el mismo CHARSET (si son de texto).

También puede suceder (no es el caso) que si tienen datos, uno de ellos no cumpla con la restricción de FK, o bien que se intente crear una constraint con un nombre que ya existe en otro objeto. En ambos casos se producirán errores y la FK no se crea.

¿Se entiende el conjunto de factores?

Poste a lo pedido y vemos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: relacionar, sql, tabla, tablas
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:59.