Ver Mensaje Individual
  #6 (permalink)  
Antiguo 08/08/2011, 05:22
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: Consulta 1 a m

Cita:
Iniciado por igg Ver Mensaje
Hola,

Si te fijas en el ejemplo que pongo, podrás ver la tercera tabla, la de relación (Tr). De todas formas, como comento, no digo que no me funcione sino si se puede hacer de otra forma al ejemplo que pongo.

Gracias y un saludo.
La tercera tabla, en una relación N:N es mandatoria. Si la pudieras eliminar la relación sería 1:N.

Fuera de eso, la mejor escritura de una relación N:N es la ortodoxa:
Código MySQL:
Ver original
  1. SELECT Ta.id, Ta.nombre, Tb.id, Tb.nombre
  2.     Ta INNER JOIN Tr ON Ta.id = Tr.idTa
  3.     INNER JOIN Tb ON Tr.idTb = Tb.id
  4. WHERE Tb.id = 23;
Si te fijas con cuidado, el la subconsulta es redundante respecto a la consulta mayor. Carece de sentido porque devolverán lo mismo. Al menos para el ejemplo que pones, quitar ese subselect es lo mismo que ponerlo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)