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

[Duda] Con el uso de DISTINCT

Cuando el ingeniero Álvaro ejecuta la siguiente consulta:

SELECT
    DISTINCT 
        BARRIO,
        NOMBRE,
        'CLIENTE' AS TIPO,
        DNI AS IDENTIFICACIÓN_OFICIAL 
FROM
    TABLA_DE_CLIENTES
UNION 
SELECT
    DISTINCT 
        BARRIO,
        NOMBRE,
        'VENDEDOR' AS TIPO,
        MATRICULA AS IDENTIFICACIÓN_OFICIAL  
FROM
    TABLA_DE_VENDEDORES;

Considero que la parte del DISTINCT es innecesaria ya que en la tabla CLIENTES el DNI es la PRIMARY KEY y en la tabla VENDEDORES la MATRICULA es la PRIMARY KEY entonces ya se asegura que cada registro en ambas tablas es distinto a los demás.
Por lo tanto la consulta anterior debería quedar así:

SELECT
    BARRIO,
    NOMBRE,
    'CLIENTE' AS TIPO,
    DNI AS IDENTIFICACIÓN_OFICIAL 
FROM
    TABLA_DE_CLIENTES
UNION 
SELECT
    BARRIO,
    NOMBRE,
    'VENDEDOR' AS TIPO,
    MATRICULA AS IDENTIFICACIÓN_OFICIAL  
FROM
    TABLA_DE_VENDEDORES;

¿Qué opinan de mi análisis?

1 respuesta
solución!

¡Hola Yahadad!

Tu análisis es correcto. En el contexto de tu consulta, el uso de DISTINCT es innecesario porque el operador UNION ya elimina automáticamente los duplicados entre las dos consultas. Además, dado que DNI y MATRICULA son claves primarias en sus respectivas tablas, cada registro ya es único en cada conjunto de resultados individual. Por lo tanto, la consulta que propones sin DISTINCT es más clara y eficiente:

SELECT
    BARRIO,
    NOMBRE,
    'CLIENTE' AS TIPO,
    DNI AS IDENTIFICACIÓN_OFICIAL 
FROM
    TABLA_DE_CLIENTES
UNION 
SELECT
    BARRIO,
    NOMBRE,
    'VENDEDOR' AS TIPO,
    MATRICULA AS IDENTIFICACIÓN_OFICIAL  
FROM
    TABLA_DE_VENDEDORES;

Esto debería funcionar correctamente y proporcionar el resultado esperado sin la necesidad de DISTINCT. Espero que esto aclare tu duda.

¡Espero haber ayudado y buenos estudios!

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