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

Crear consulta utilizando la misma tabla varias veces

Estas en el tema de Crear consulta utilizando la misma tabla varias veces en el foro de Mysql en Foros del Web. Hola. Hice una consulta: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT * FROM ordenes_cosecha INNER JOIN ayuda_largos ON ordenes_cosecha.idproducto1 = ayuda_largos.id INNER JOIN ayuda_largos ON ...
  #1 (permalink)  
Antiguo 22/07/2014, 13:11
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años
Puntos: 3
Crear consulta utilizando la misma tabla varias veces

Hola.

Hice una consulta:

Código MySQL:
Ver original
  1. SELECT * FROM ordenes_cosecha
  2. INNER JOIN ayuda_largos ON ordenes_cosecha.idproducto1 = ayuda_largos.id
  3. INNER JOIN ayuda_largos ON ordenes_cosecha.idproducto2 = ayuda_largos.id
  4. INNER JOIN ayuda_largos ON ordenes_cosecha.idproducto3 = ayuda_largos.id
  5. INNER JOIN ayuda_largos ON ordenes_cosecha.idproducto4 = ayuda_largos.id
  6. WHERE cuadro = " & Cuadro & "
  7. ORDER BY largo
Cita:
Editado: Código de programación no permitido en foros de Bases de datos. Leer las normas del foro, por favor.
Me aparece el error "not unique table/alias". Entiendo que se debe a que menciono la misma tabla varias veces.

¿Cómo debe quedar la consulta para que no me de error?

Desde ya, muchas gracias por las respuestas.
Saludos
  #2 (permalink)  
Antiguo 22/07/2014, 13:18
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Crear consulta utilizando la misma tabla varias veces

Cita:
Me aparece el error "not unique table/alias". Entiendo que se debe a que menciono la misma tabla varias veces.

¿Cómo debe quedar la consulta para que no me de error?
Como en cualquier otro DBMS, incluyendo Oracle, SQL Server, DB2, Informix, Firebird... Usando alias.
Código MySQL:
Ver original
  1. SELECT * FROM ordenes_cosecha oc
  2.     INNER JOIN ayuda_largos a1 ON oc.idproducto1 = a1.id
  3.     INNER JOIN ayuda_largos a2 ON oc.idproducto2 = a2.id
  4.     INNER JOIN ayuda_largos a3 ON oc.idproducto3 = a3.id
  5.     INNER JOIN ayuda_largos a4 ON oc.idproducto4 = a4.id
  6.     WHERE cuadro = " & Cuadro & "
  7.     ORDER BY largo

Más allá de eso, tu tabla "ayuda_largos" parece estar mal diseñada, porque expresaría una relación N:M, y lo que muestras implicaría que no está normalizada.
__________________
¿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: join, select, sql, tabla, veces
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 21:58.