diff --git a/src/metabase/db.clj b/src/metabase/db.clj
index 19051f4d5191c564b959450e496b66de3f42db1b..0573dcd566e9a0023d709855f023f61c534a3d20 100644
--- a/src/metabase/db.clj
+++ b/src/metabase/db.clj
@@ -304,6 +304,10 @@
     (sel :many :field->id [User :first_name])
       -> {\"Cam\" 1, \"Sameer\" 2}
 
+    ;; Return a map of field value -> field value.
+    (sel :many :field->field [User :first_name :last_name])
+      -> {\"Cam\" \"Saul\", \"Rasta\" \"Toucan\", ...}
+
     ;; Return a map of field value -> *entire* object. Duplicates will be discarded!
     (sel :many :field->obj [Table :name] :db_id 1)
       -> {\"venues\" {:id 1, :name \"venues\", ...}
@@ -357,6 +361,11 @@
                            (map (fn [{id# :id field-val# field#}]
                                   {field-val# id#}))
                            (into {})))
+        :field->field `(let [[entity# field1# field2#] ~entity]
+                         (->> (sel :many entity# ~@forms)
+                              (map (fn [obj#]
+                                     {(field1# obj#) (field2# obj#)}))
+                              (into {})))
         :field->obj `(let [[entity# field#] ~entity]
                        (->> (sel :many entity# ~@forms)
                             (map (fn [obj#]