This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-04-14
Channels
- # announcements (7)
- # babashka (51)
- # beginners (292)
- # calva (37)
- # chlorine-clover (40)
- # cider (5)
- # clj-kondo (83)
- # cljs-dev (26)
- # cljsrn (36)
- # clojure (172)
- # clojure-argentina (5)
- # clojure-austin (1)
- # clojure-australia (9)
- # clojure-europe (3)
- # clojure-france (7)
- # clojure-gamedev (3)
- # clojure-nl (3)
- # clojure-spec (4)
- # clojure-uk (34)
- # clojurescript (46)
- # community-development (1)
- # conjure (26)
- # core-async (28)
- # data-science (2)
- # datascript (2)
- # datomic (61)
- # devcards (3)
- # emacs (7)
- # events (2)
- # fulcro (65)
- # graalvm (57)
- # instaparse (2)
- # juxt (21)
- # luminus (6)
- # off-topic (21)
- # pathom (1)
- # pedestal (15)
- # reagent (1)
- # shadow-cljs (19)
- # spacemacs (3)
- # specter (1)
- # sql (14)
- # unrepl (4)
- # vscode (1)
- # xtdb (1)
- # yada (4)
I tried a few things, like nesting vectors in the honeysql (left-join
clause, but it no work, cap'tain!
(left-join :foo [:and [:= :
should work I think?
user=> (-> (select :* :bar) (left-join :foo [:and [:= : :] [:= :bar.name "wibble"]]) (h/format))
["SELECT *, bar LEFT JOIN foo ON ( = AND bar.name = ?)" "wibble"]
If you have multiple joins, you have to use the merge-
helpers
user=> (-> (select :* :bar) (merge-left-join :foo [:and [:= : :] [:= :bar.name "wibble"]]) (merge-left-join :quux [:and [:= : :] [:= :foo.thing "wut"]]) (h/format))
["SELECT *, bar LEFT JOIN foo ON ( = AND bar.name = ?) LEFT JOIN quux ON ( = AND foo.thing = ?)" "wibble" "wut"]
Each left-join
/ merge-left-join
phrase only joins one table.