Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como remover colunas duplicadas da junção no SQL


Como você está consultando a tabela com '*', você sempre obterá todas as colunas em ambas as tabelas. Para omitir esta coluna, você terá que nomear manualmente todas as colunas que deseja consultar. Para atender sua outra necessidade, você precisa simplesmente inserir uma coluna fictícia para cada cláusula na consulta união. Abaixo está um exemplo que deve funcionar para permitir o que você deseja -
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;