Oracle
 sql >> Database >  >> RDS >> Oracle

Come rimuovere le colonne duplicate dal join in SQL

Poiché stai interrogando la tabella con '*', otterrai sempre tutte le colonne in entrambe le tabelle. Per omettere questa colonna, dovrai nominare manualmente tutte le colonne che vuoi interrogare. Per soddisfare l'altra tua esigenza, devi semplicemente inserire una colonna fittizia in ciascuna clausola nella query di unione. Di seguito è riportato un esempio che dovrebbe funzionare per consentire ciò che desideri -

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;