内部加入clojure

Ash*_*Ash 9 clojure

可以说我有

(def test-left 
                            [{:name "Sean" :age 27} 
                             {:name "Ross" :age 27} 
                             {:name "Brian" :age 22}])
Run Code Online (Sandbox Code Playgroud)

(def test-right 
                        [{:owner "Sean" :item "Beer"} 
                         {:owner "Sean" :item "Pizza"} 
                         {:owner "Ross" :item "Computer"} 
                         {:owner "Matt" :item "Bike"}])
Run Code Online (Sandbox Code Playgroud)

当我这样做时,(clojure.set/join test-left test-right)我会得到一个笛卡尔积.12排.我想要的是内连接:左边的名字=:右边的所有者,这样我只得到那些在右边有匹配行的结果

所以我明白了

              [{:name "Sean" :age 27  :item “Beer” } 
               {:name "Sean" :age 27  :item “Pizza” }
               {:name "Ross" :age 27  :item “Computer”}]
Run Code Online (Sandbox Code Playgroud)

有任何想法吗.同样想要实现左右外连接,但那是separete问题.我正在学习clojure,所以请耐心等待

Ash*_*Ash 9

得到它了 .我的错

1:24 main-hta=> (clojure.set/join test-left test-right {:name :owner})
Run Code Online (Sandbox Code Playgroud)

得到

#{{:item "Pizza", :owner "Sean", :name "Sean", :age 27} {:item "Beer", :owner "Sean", :name "Sean", :age 27} {:item "Computer", :owner "Ross", :name "Ross", :ag
e 27}}
Run Code Online (Sandbox Code Playgroud)