Ver Mensaje Individual
  #6 (permalink)  
Antiguo 03/12/2012, 08:29
pakopv
 
Fecha de Ingreso: diciembre-2012
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Cómo unir tres tablas?

Bueno, he probado y no me vale.
Hay una cuarta tabla en discordia.

La siguiente consulta me va perfecta, pero me falta la columna Precio:

Código MySQL:
Ver original
  1. SELECT resumen.idProducto, tabla_seleccionados.qty_reserved,Tabla_Comprados.qty_purch FROM resumen,tabla_seleccionados, tabla_comprados
  2. WHERE resumen.idCompra=1
  3. and resumen.idProductoCompra =TablaSeleccionados.idProductoCompra (+)
  4. and resumen.idProductoCompra =TablaComprados.idProductoCompra (+)

Resultado
idProducto | Qty_Reserved | Qty_purch

Ahora quiero agregar la columna Unit_price que se obtiene de TablaProductos.
Agregando

Código SQL:
Ver original
  1. SELECT resumen.idProducto, tabla_seleccionados.qty_reserved,Tabla_Comprados.qty_purch,TablaProductos.unit_price FROM resumen,tabla_seleccionados, tabla_comprados, TablaProductos
  2. WHERE resumen.idCompra=1
  3. AND resumen.idProductoCompra =TablaSeleccionados.idProductoCompra (+)
  4. AND resumen.idProductoCompra =TablaComprados.idProductoCompra (+)
  5. AND TablaSeleccionados.stm_auto_key = TablaProductos.stm_auto_key (+)

va perfecto.

--------------------------
Pero al agregar el precio de los comprados me da un error.
ORA-01417: a table may be outer joined to at most one other table
Código SQL:
Ver original
  1. SELECT resumen.idProducto, tabla_seleccionados.qty_reserved,Tabla_Comprados.qty_purch,TablaProductos.unit_price FROM resumen,tabla_seleccionados, tabla_comprados, TablaProductos
  2. WHERE resumen.idCompra=1
  3. AND resumen.idProductoCompra =TablaSeleccionados.idProductoCompra (+)
  4. AND resumen.idProductoCompra =TablaComprados.idProductoCompra (+)
  5. AND TablaSeleccionados.stm_auto_key = TablaProductos.stm_auto_key (+)
  6. AND TablaComprados.stm_auto_key = TablaProductos.stm_auto_key (+)

--------------------------
He probado también con
Código SQL:
Ver original
  1. AND (TablaSeleccionados.stm_auto_key = TablaProductos.stm_auto_key (+)
  2.              OR
  3.              TablaComprados.stm_auto_key = TablaProductos.stm_auto_key (+))
y me da error
ORA-01719: outer join operator (+) not allowed in operand of OR or IN

Sabes cómo solucionarlo?

Última edición por gnzsoloyo; 03/12/2012 a las 09:15 Razón: Código SQL sin etiquetar