Saltar al contenido

Descubre Como Hacer un INNER JOIN en tus PL-SQL Procedures en Oracle

PL-SQL Procedures en OracleSi aprendes como se debe hacer un INNER JOIN en tus PL-SQL Procedures en Oracle podrás unir o asociar dos o más tablas en una misma consulta SELECT para obtener los datos necesarios de cada tabla.

La cláusula INNER JOIN básicamente permite unir una tabla con otra tabla en tus PL-SQL Procedures en Oracle por un campo o llave que sea común para ambas tablas.

En Oracle para unir dos tablas se puede usar la cláusula INNER JOIN la que puede resultar muy complicada para los desarrolladores, pero esta puede ser reemplazada fácilmente por un signo igual “=” dentro la cláusula WHERE, lo que resulta mas simple de aplicar en tus PL-SQL Procedures en Oracle.

Revisemos algunos ejemplos para que entiendas mejor como se debe usar el INNER JOIN en tus PL-SQL Procedures en Oracle.

Ejemplo #1: Supone que en una consulta necesitas obtener datos de un empleado y además datos del departamento, veamos como se hace:

/* PL-SQL Procedures en Oracle */

Select

T_empleado.nombre,

T_empleado.direccion,

T_empleado.cargo,

T_departamento.codigo_dep,

T_departamento.nombre_dep

From t_empleado

INNER JOIN t_departamento ON t_empleado.id_departamento = t_departamento.id_departamento

Where t_empleado = pin_id_empleado;

En este ejemplo de PL-SQL Procedures en Oracle se esta uniendo la tabla t_empleado con la tabla t_departamento por su campo común id_departamento utilizando la cláusula INNER JOIN.

TÚ REPORTE: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”

¡ Haz Click Aquí y Descárgalo GRATIS Ahora !

Ejemplo #2: Veamos ahora como se hace la misma consulta anterior pero utilizando el signo igual en la cláusula WHERE:

/* PL-SQL Procedures en Oracle */

Select

emp.nombre,

emp.direccion,

emp.cargo,

dep.codigo_dep,

dep.nombre_dep

From t_empleado emp, t_departamento dep

Where emp.t_empleado = pin_id_empleado

And dep.id_departamento = emp.id_departamento;

En este ejemplo se reemplaza la cláusula INNER JOIN por una condición dentro de la cláusula WHERE en tus PL-SQL Procedures en Oracle, donde se une la tabla t_empleado (emp.id_departamento) con la tabla t_departamento (dep.id_departamento) solo usando el signo igual (=).

Este último ejemplo es el método mas utilizado por los desarrolladores en la construcción de los PL-SQL Procedures en Oracle, ya que permite una rápida implementación quedando un código más entendible a diferencia de utilizar la cláusula INNER JOIN que es más larga y engorrosa de aplicar.

Te propongo que pruebes de inmediato estos ejemplos en tu Base de Datos con tus propias tablas,  PL-SQL Procedures en Oracle y PL-SQL Function en Oracle, para que comiences a ejercitar la mano y aprendas a dominar esta nueva técnica en tus PL-SQL Packages en Oracle.

Estoy muy interesado en conocer tu opinión y/o comentario sobre este artículo, también cuéntame sobre qué es lo que quieres saber de PL-SQL Procedures en Oracle y/o dime cuál es tu principal frustración a la hora de trabajar con PL-SQL Procedures en Oracle. Estaré muy atento respondiendo tus preguntas y/o comentarios, gracias.

Saludos

Roberto Vicencio – Escritor del Reporte:

Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos

13 comentarios en «Descubre Como Hacer un INNER JOIN en tus PL-SQL Procedures en Oracle»

    1. Hola David, gracias por comunicarte y por tu comentario, te recomiendo aplicar de inmediato lo aprendido en tu Base de Datos, gracias.

      PD: Ya obtuviste mi reporte gratuito de ‘Cómo Construir un Select Eficiente en Oracle en Solo 7 Pasos’, si aún no lo has hecho descargalo aquí:
      https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

    1. Hola Marcos, gracias por comunicarte, excelente tu pregunta, todo depende de la información que quieres obtener y si la o las tablas estan creadas con sus primary key e indices correctos, si quieres consultar una tabla con gran volumen de datos y esta no tiene el indice adecuado, tardarás mucho tiempo en obtener los datos y eso es indiferente de si usas o no un inner join para obtener datos de una tabla asociada. Por supuesto que mientras mas tablas agregues a una consulta esta tardará mas tiempo en devolver los datos, pero si el modelo de datos se encuentra optimizado estos tiempos disminuyen considerablemente.

      PD: Pronto voy a dar un seminario en vivo donde hablare de como construir un Select de múltiples tablas, te avisare por email o en mi blog para que estes atento y reserves tu cupo.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

    1. Hola Daniel, gracias por comunicarte y por tu comentario, seguiré escribiendo artículos y haciendo videos que sean útiles para la comunidad de dasarrolladores en Oracle, gracias.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  1. cristian andres (estudiante de sistemas)

    buenas necesito hacer un pl-sql que me valla a consultar los datos de una tabla llamada ejemplares que contiene unos valores de costo precio por tiempo costo de tiempo adicional bueno otras cosas y necesito llevar esos datos a una tabla llamada alquiler y me muestre todos los datos haciendo un calculo que me muestre el valor total gracias si me pueden ayudar les explico bien el problema gracias

    1. Hola Cristian, gracias por comunicarte y por tu comentario, para hacer lo que necesitas debes hacer un procedimiento almacenado que consulte los datos, luego los inserte, finalmente los calcule y los muestre, algo como lo siguiente:

      create procedure tu_proceso is
      lin_precio number;
      lin_total number;
      begin
      select precio into lin_precio from ejemplares;
      insert into alquiler(precio) values(lin_precio);
      select sum(precio) into lin_total from alquiler;
      dbms_output.put_line(‘total: ‘||lin_total);
      end;

      PD: Ya obtuviste mi libro-reporte gratuito sobre “Como Construir un SELECT Eficiente en Oracle en Solo 7 Pasos”, si aún no lo tienes puedes obtenerlo haciendo clic en el siguiente enlace:
      https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  2. Hola Roberto,

    No has respondido del todo a la pregunta: “pero en cuestion de volumen de datos cual es mas optimo”, y me parece la clave de todo esto.

    En SQL Server la diferencia de rendimiento entre hacer un JOIN en el FROM y unir las tablas mediante igualdades en el WHERE es abismal, el rendimiento de los JOIN es mucho mayor, ya que el WHERE se aplica tras haber recuperado TODOS los datos de TODAS las tablas, mientras que el FROM es lo primero que se ejecuta y, si está enlazado por JOIN’s, sólo recupera los datos que cumplan esas condiciones.

    ¿Cómo hace esto Oracle? ¿Es lo mismo JOIN que igualar en el WHERE? ¿Cómo ejecuta la consulta?

    Un saludo.

    1. Hola Chano, gracias por comunicarte y por tu comentario, has tocado un muy buen punto, a diferencia de Sql server en Oracle el usar el Inner Join en el From o usar la igualdad en el Where en cuanto a rendimiento es exactamente lo mismo, es decir, el resultado del ejemplo #1 y #2 son lo mismo en cuestion de volumen de datos y como indico la diferencia solo esta en la escritura del Join que es mas engorrosa, gracias.

      PD: Si este artículo te pareció interesante te invito a que compartas el enlace https://dominatuspackagesen0racle.com/ con las personas que creas que también les puede ser útil esta información y quedate atento a tu email porque seguiré enviándote información valiosa para tu aprendizaje.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

    1. Hola Quique, gracias por comunicarte, si te aparecen códigos duplicados es porque estas haciendo Join con otra tabla que si tiene mas de un registro con el mismo código, es decir, si la tabla A tiene el código 01 y la tabla B tiene 2 registros con el código 01 al hacer el join se mostraran 2 registros con el código 01, gracias.

      PD: Ya obtuviste mi libro-reporte sobre “Cómo Construir un SELECT Eficiente en Oracle en Solo 7 Pasos”, si aun no lo tienes puedes obtenerlo desde este enlace https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.