Ayuda SAP

¿Limitación para los Inner join?

Etiquetas: #<Tag:0x00007f96631709c0>

Hola quiero hacer una consulta que enlaza 6 tablas ¿hay limitación en el número de inner join anidados?

Tiene alguien un ejemplo con mas de 3 tablas.

Gracias

Hace más de 7 meses que no te leo en el foro… por las dudas que hayas cambiado de sistema, pregunto, estás hablando de ABAP, ¿verdad?

Si ABAP, es verdad que llevo una época que no entro. :slightly_smiling_face:

Primero habría que revisar que Gestor de Base de datos usa tu SAP, es decir, SQL Server, ORACLE,
y suponiendo que están hablando de SQL Standard, no hay problema con realizar los joins anidados con 6 tablas. Solo recuerda colocar el orden de la PK de la tabla base con la FK de otra tabla.

1 me gusta

Sí es el Standard. Gracias

A nivel de rendimiento que veis mas recomendable anidar INNER join o hacer consultas parciales con variable locales?

Por rendimiento, es mejor INNER en comparación a hacer una selección y luego por medio de un FOR ALL ENTRIES obtener datos de otra tabla.

Lo que sí, no recomiendan usar INNER por el tema de que la mayoria no analiza correctamente los campos de unión, los cuales deben ser campos claves en prioridad. Es muy facil caer en el error y no obtener los registros válidos.

En caso de que el proyecto en donde trabajas no te dejen usar INNER (por lo anteriormente dicho) usar el FOR ALL ENTRIES, antes de la segunda selección raliza un ordenamiento y un borrado de duplicidad por los campos que vas usar de la primer tabla, así al usar el FAE, no traeras registros innecesarios, optimizando un poco la selección, recordar que el FAE internamente es un WHERE con varios ‘OR’.

2 Me gusta

Gracias tomo nota y me queda claro el uso del inner. Tengo experiencia en temas de Oracle y por logica como dices el inner debe tener mejor rendimiento, pero como dices es importante el tema de los campos clave.

@mduenasp:

¿Se ha solucionado ya el tema?

Como tú eres el autor de todo el debate, es tu responsabilidad gestionar el tema, y brindar información sobre si lo has solucionado o no.

  • En caso de que hayas encontrado mensajes que te ayudaron con información, o aprendiste algo de las experiencias de otras personas, marca sus mensajes con el icono :heart: que tienes al pié de cada mensaje.

  • Y en caso de que algún mensaje haya solucionado el tema, haz clic en el icono :ballot_box_with_check: para que quede marcado como solucionado. En 7 días después de la última respuesta, el tema se cerrará dejando así un mensaje marcado como “solución”, y estarás colaborando con la organización de toda la comunidad.

Este mensaje es automático cuando los debates parecen resueltos, pero aún su autor no les ha dado el cierre correspondiente. Por favor, no respondas a este mensaje ya que desvirtuará el debate. Si tienes dudas, o comentarios al respecto, abre un tema en #feedback. :+1:

Por favor, no marques este mensaje como solución al debate.

Este tema se cerró automáticamente 7 días después de la última publicación. No se permiten nuevas respuestas.