Specifying join keys and their matching conditions

When both keys have the same name(s): just provide the key name(s).

flights2 |>
  semi_join(weather, join_by(origin, time_hour))
## # A tibble: 335,220 × 6
##    year time_hour           origin dest  tailnum carrier
##   <int> <dttm>              <chr>  <chr> <chr>   <chr>  
## 1  2013 2013-01-01 05:00:00 EWR    IAH   N14228  UA     
## 2  2013 2013-01-01 05:00:00 LGA    IAH   N24211  UA     
## 3  2013 2013-01-01 05:00:00 JFK    MIA   N619AA  AA     
## 4  2013 2013-01-01 05:00:00 JFK    BQN   N804JB  B6     
## # ℹ 335,216 more rows