sql >> Base de Datos >  >> RDS >> Oracle

Cómo eliminar columnas duplicadas de unirse en SQL

Dado que está consultando la tabla con '*', siempre obtendrá todas las columnas en ambas tablas. Para omitir esta columna, deberá nombrar manualmente todas las columnas que SÍ desea consultar. Para abordar su otra necesidad, simplemente debe insertar una columna ficticia en cada cláusula en la consulta de unión. A continuación se muestra un ejemplo que debería funcionar para permitir lo que desea:

SELECT customer.customerid, customer.customername, customer.customeraddress, newspapername, magazinename, enddate, publishedby 
FROM customer
INNER JOIN
(select  customerid, newspapername, null Magazinename, enddate, n.publishedby 
 from newspapersubscription ns, newspaper n 
 where publishedby in(select publishedby 
                    from newspaper 
                    where ns.newspapername = n.NewspaperName)
UNION
select  customerid, null newspapername, Magazinename, enddate, m.publishedby 
from magazinesubscription ms, magazine m 
 where publishedby in(select publishedby 
                    from magazine 
                     where ms.Magazinename = m.MagazineName))
on customer.customerid = customerid
ORDER BY customer.customerid;