I’m trying to do some DB during the lockdown and would appreciate some help, since I have been doing this for 5 hours without luck. Got a PDF from a book and sadly, the solutions part isn’t readable.
Here are two tables:
**Table 1 named Laptop** Laptop ID(PK) Name 1 Lenovo 2 Asus 3 Mac **Table 2 named Buyers** Buyer ID(PK) Buyer Name Laptop ID(FK) Country A Jet Li 1 China B Hermione 1 UK C Mercato 2 Spain
The activity requests that I create an “SQL statement that selects all bags names and their buyer name (so 2 columns only), and to show null values as well” because Mac doesn’t have a buyer.
I have been trying JOIN and UNION, but no lock.
SELECT Name from Laptop UNION SELECT Buyer name from Buyers;
Thank you very much
Advertisement
Answer
You need an OUTER JOIN
:
SELECT l.name, b.buyer_name FROM laptop l LEFT OUTER JOIN buyers b ON l.laptop_id = b.bag_id;
Demo:
with laptop as( select 1 laptop_id, 'Lenevo' name from dual union all select 2 laptop_id, 'Asus' name from dual union all select 3 laptop_id, 'Mac' name from dual ), buyers as( select 'Jet Li' buyer_name, 1 bag_id from dual union all select 'Hermione' buyer_name, 1 bag_id from dual union all select 'Mercato' buyer_name, 2 bag_id from dual ) SELECT l.name, b.buyer_name FROM laptop l LEFT OUTER JOIN buyers b ON l.laptop_id = b.bag_id; NAME BUYER_NAME ---------- -------------------- Lenevo Jet Li Lenevo Hermione Asus Mercato Mac NULL