sql >> Database >  >> RDS >> Oracle

Hoe dubbele kolommen te verwijderen uit join in SQL

Aangezien u de tabel met '*' opvraagt, krijgt u altijd alle kolommen in beide tabellen. Om deze kolom weg te laten, moet u handmatig alle kolommen een naam geven die u WEL wilt opvragen. Om aan uw andere behoefte te voldoen, hoeft u alleen maar een dummy-kolom in te voegen voor elke clausule in de samenvoegquery. Hieronder is een voorbeeld dat zou moeten werken om te laten wat u wilt -

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;


  1. Dubbelzinnige kolomnaamfout

  2. PDO::ERRMODE_EXCEPTION onderdrukt waarschuwing niet

  3. ActiveRecord Fuzzy Zoeken

  4. CREATE-opdracht geweigerd voor gebruiker die ALLE PRIVILEGES VERLEENT