diff --git a/core/modules/views/src/Plugin/views/join/JoinPluginBase.php b/core/modules/views/src/Plugin/views/join/JoinPluginBase.php
index 6811dcddc78daa3a05dd0355ccd3bd7d4814d841..e774164568655c7b3cb82093d6fa862e93079c30 100644
--- a/core/modules/views/src/Plugin/views/join/JoinPluginBase.php
+++ b/core/modules/views/src/Plugin/views/join/JoinPluginBase.php
@@ -266,7 +266,11 @@ public function __construct(array $configuration, $plugin_id, $plugin_definition
     }
 
     $this->leftTable = $configuration['left_table'];
-    $this->leftField = $configuration['left_field'];
+
+    if (!empty($configuration['left_field'])) {
+      $this->leftField = $configuration['left_field'];
+    }
+
     $this->field = $configuration['field'];
 
     if (!empty($configuration['left_formula'])) {
diff --git a/core/modules/views/tests/src/Kernel/Plugin/JoinTest.php b/core/modules/views/tests/src/Kernel/Plugin/JoinTest.php
index af7003f85e665d2743222b5d557b4cb3fdf23642..e06bc51371a2aa39787904ea01c292ff581e70c1 100644
--- a/core/modules/views/tests/src/Kernel/Plugin/JoinTest.php
+++ b/core/modules/views/tests/src/Kernel/Plugin/JoinTest.php
@@ -205,6 +205,8 @@ public function testBasePlugin() {
 
     // Test that joins using 'left_formula' are properly built.
     $configuration['left_formula'] = 'MAX(views_test_data.uid)';
+    // When 'left_formula' is present, 'left_field' is no longer required.
+    unset($configuration['left_field']);
     $join = $this->manager->createInstance('standard', $configuration);
     $table = ['alias' => 'users6'];
     $join->buildJoin($query, $table, $view->query);