Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Sugerencia] Una manera más fácil de cambiar entre LEFT JOIN y RIGHT JOIN

El ingeniero Álvaro cambia mucho la sintaxis de la consulta para el RIGHT JOIN y sólo es cuestión de intercambiar de lugar el nombre de las tablas junto con sus respectivos alias. La clave aquí es que en el LEFT JOIN manda la tabla de la izquierda (TABLA_DE_CLIENTES A) y en el RIGHT JOIN manda la tabla de la derecha (TABLA_DE_CLIENTES A)

...
    TABLA_DE_CLIENTES A
LEFT JOIN
    FACTURAS B
...
...
    FACTURAS B
RIGHT JOIN
    TABLA_DE_CLIENTES A
...

Y listo, lo demás no se modifica. Ahora bien, comparto como quedan de forma completa:

SELECT
    DISTINCT
        A.DNI AS DNI_CLIENTE,
        A.NOMBRE,
        A.CIUDAD,
        B.DNI AS DNI_FACTURA
FROM
    TABLA_DE_CLIENTES A
LEFT JOIN
    FACTURAS B
ON
    A.DNI = B.DNI
WHERE
    B.DNI IS NULL;
SELECT
    DISTINCT
        A.DNI AS DNI_CLIENTE,
        A.NOMBRE,
        A.CIUDAD,
        B.DNI AS DNI_FACTURA
FROM
    FACTURAS B
RIGHT JOIN
    TABLA_DE_CLIENTES A
ON
    A.DNI = B.DNI
WHERE
    B.DNI IS NULL;

A forma de comparación muestro la consulta de la clase la cual también es correcta pero considero que hace varias modificaciones innecesarias:

SELECT
    DISTINCT
        B.DNI,
        B.NOMBRE,
        B.CIUDAD,
        A.DNI
FROM
    FACTURAS A
RIGHT JOIN
    TABLA_DE_CLIENTES B
ON
    A.DNI = B.DNI
WHERE
    A.DNI IS NULL;

¿Qué opinan de mi análisis?

1 respuesta
solución!

¡Hola Yahadad!

Gracias por compartir tu análisis sobre el uso de LEFT JOIN y RIGHT JOIN. Tienes toda la razón al señalar que intercambiar las tablas y sus alias es una manera eficiente de cambiar entre estas dos operaciones. Esto se debe a que el LEFT JOIN y el RIGHT JOIN son esencialmente dos caras de la misma moneda: uno prioriza la tabla de la izquierda y el otro la de la derecha.

Tu ejemplo es claro y demuestra cómo el simple intercambio de las tablas puede lograr el mismo resultado. Aquí te dejo un resumen de lo que has hecho:

Para LEFT JOIN:

SELECT
    DISTINCT
        A.DNI AS DNI_CLIENTE,
        A.NOMBRE,
        A.CIUDAD,
        B.DNI AS DNI_FACTURA
FROM
    TABLA_DE_CLIENTES A
LEFT JOIN
    FACTURAS B
ON
    A.DNI = B.DNI
WHERE
    B.DNI IS NULL;

Para RIGHT JOIN:

SELECT
    DISTINCT
        A.DNI AS DNI_CLIENTE,
        A.NOMBRE,
        A.CIUDAD,
        B.DNI AS DNI_FACTURA
FROM
    FACTURAS B
RIGHT JOIN
    TABLA_DE_CLIENTES A
ON
    A.DNI = B.DNI
WHERE
    B.DNI IS NULL;

Ambas consultas están diseñadas para encontrar clientes que no tienen facturas asociadas, y al intercambiar las tablas, logras el mismo objetivo con un RIGHT JOIN.

Tu observación sobre las modificaciones innecesarias en la consulta de la clase es válida. A veces, mantener la simplicidad en las consultas puede hacerlas más legibles y fáciles de mantener. Sin embargo, es importante también considerar el contexto y los requerimientos específicos de cada consulta.

Espero que tu análisis ayude a otros estudiantes a entender mejor cómo funcionan estos tipos de joins. ¡Buen trabajo!

Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!