q1 <- inner_join(customers , orders , by = 'customer_id')
How many rows are in the result?
There are 4 rows
Why are some customers or orders not included in the result? Inner join returns all rows from both tables where there is a match. Therefore the rows not returned did not have a match in the other table
Display the result
head(q1)
## # A tibble: 4 × 6
## customer_id name city order_id product amount
## <dbl> <chr> <chr> <dbl> <chr> <dbl>
## 1 1 Alice New York 101 Laptop 1200
## 2 2 Bob Los Angeles 102 Phone 800
## 3 2 Bob Los Angeles 104 Desktop 1500
## 4 3 Charlie Chicago 103 Tablet 300
q2 <- left_join(customers , orders , by = 'customer_id')
How many rows are in the result?
There are 6 rows
Explain why this number differs from the inner join result.
Left join returns all rows from the left table and matching rows from
the right table. The left table has 5 rows and the right table has
customer_id 2 twice, making 2 have 6 rows
Display the result
head(q2)
## # A tibble: 6 × 6
## customer_id name city order_id product amount
## <dbl> <chr> <chr> <dbl> <chr> <dbl>
## 1 1 Alice New York 101 Laptop 1200
## 2 2 Bob Los Angeles 102 Phone 800
## 3 2 Bob Los Angeles 104 Desktop 1500
## 4 3 Charlie Chicago 103 Tablet 300
## 5 4 David Houston NA <NA> NA
## 6 5 Eve Phoenix NA <NA> NA
q3 <- right_join(customers , orders , by = 'customer_id')
How many rows are in the result?
There are 6 rows
Which customer_ids in the result have NULL for customer name and
city? Explain why.
The ones that show NULL show it because there are no customer_ids for 5,
6, or 7. Right join returns all rows from the right table and matching
rows from the left table.
Display the result
head(q3)
## # A tibble: 6 × 6
## customer_id name city order_id product amount
## <dbl> <chr> <chr> <dbl> <chr> <dbl>
## 1 1 Alice New York 101 Laptop 1200
## 2 2 Bob Los Angeles 102 Phone 800
## 3 2 Bob Los Angeles 104 Desktop 1500
## 4 3 Charlie Chicago 103 Tablet 300
## 5 6 <NA> <NA> 105 Camera 600
## 6 7 <NA> <NA> 106 Printer 150