Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/12/2012, 06:56
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
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)