Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/10/2006, 05:02
Avatar de MACGREGOR
MACGREGOR
 
Fecha de Ingreso: enero-2005
Mensajes: 89
Antigüedad: 19 años, 4 meses
Puntos: 0
Debes eliminar el campo Ficha.Opciones de la tabla ficha.

Crea una tabla que se llame por ejemplo Rel_ficha_op en la que guardes la relación que existe entre la ficha y las opciones guarda los identificadores de las dos tablas en esta nueva.

ejemplo:
Tabla Ficha
id_F:1 (resto campos)
id_F:2 (resto campos)
id_F:3 (resto campos)
id_F:4 (resto campos)
id_F:5 (resto campos)
id_F:6 (resto campos)
..............................

Tabla Rel_ficha_op
id_F:1 id_op:1
id_F:1 id_op:3
id_F:1 id_op:4
id_F:1 id_op:7
id_F:2 id_op:2
id_F:2 id_op:5
..............................

Tabla Opciones:
id_op:1 desc:"descripción 1"
id_op:2 desc:"descripción 2"
id_op:3 desc:"descripción 3"
id_op:4 desc:"descripción 4"
id_op:5 desc:"descripción 5"
id_op:6 desc:"descripción 6"
..............................

De esta manera podrás cruzar con una consulta la tabla ficha y la tabla opciones y hacer lo que quieres.
Select FI.id_F, FI.(resto de campos), OP.id_op, OP.desc
from ficha as FI, opciones as OP, Rel_ficha_op as REL
where FI.id_F=REL.id_F and REL.id_op=OP.id_op
and FI.id_F <= 2 (suponiendo que queremos las 2 primeras fichas)

El resultado (siguiendo como ejemplo los valores anteriores)

id_F:1 (resto campos) id_op:1 desc:"descripción 1"
id_F:1 (resto campos) id_op:3 desc:"descripción 3"
id_F:1 (resto campos) id_op:4 desc:"descripción 4"
id_F:1 (resto campos) id_op:7 desc:"descripción 7"
id_F:2 (resto campos) id_op:2 desc:"descripción 2"
id_F:2 (resto campos) id_op:5 desc:"descripción 5"


Ahora ya tienes lo que quieres, si solo quieres una línea para cada ficha puedes coger esta consulta sql meterla en la clausula from como si fuera una tabla "from (toda la consulta anterior) as RES1..." y realizar una consulta concatenando los campos descripción.