diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
index ece96f5..84a7fba 100644
--- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
+++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
@@ -667,29 +667,36 @@ protected function attachPropertyData(array &$entities) {
       $table = $this->revisionDataTable ?: $this->dataTable;
       $query = $this->database->select($table, 'data', array('fetch' => \PDO::FETCH_ASSOC))
         ->fields('data')
-        ->condition($this->idKey, array_keys($entities))
+        ->condition('data.' . $this->idKey, array_keys($entities))
         ->orderBy('data.' . $this->idKey);
 
+      $table_mapping = $this->getTableMapping();
+      $translations = array();
+
       if ($this->revisionDataTable) {
+        $data_fields = array_diff($table_mapping->getFieldNames($this->revisionDataTable), $table_mapping->getFieldNames($this->baseTable));
+
+        // Are there any fields unique to dataTable, that are not IDs or revisionable?
+        $data_fields_static = array_diff($table_mapping->getFieldNames($this->dataTable), $table_mapping->getFieldNames($this->revisionDataTable), $table_mapping->getFieldNames($this->baseTable));
+        if ($data_fields_static) {
+          $data_fields = array_merge($data_fields, $data_fields_static);
+
+          $query->leftJoin($this->dataTable, 'static', "(data.$this->revisionKey = static.$this->revisionKey)");
+          $query->fields('static', $data_fields_static);
+        }
+
         // Get the revision IDs.
         $revision_ids = array();
         foreach ($entities as $values) {
           $revision_ids[] = is_object($values) ? $values->getRevisionId() : $values[$this->revisionKey][LanguageInterface::LANGCODE_DEFAULT];
         }
-        $query->condition($this->revisionKey, $revision_ids);
-      }
-
-      $data = $query->execute();
-
-      $table_mapping = $this->getTableMapping();
-      $translations = array();
-      if ($this->revisionDataTable) {
-        $data_fields = array_diff($table_mapping->getFieldNames($this->revisionDataTable), $table_mapping->getFieldNames($this->baseTable));
+        $query->condition('data.' . $this->revisionKey, $revision_ids);
       }
       else {
         $data_fields = $table_mapping->getFieldNames($this->dataTable);
       }
 
+      $data = $query->execute();
       foreach ($data as $values) {
         $id = $values[$this->idKey];
 
