SqlKoram - присоединиться к дополнительному выбору, но как мне указать псевдоним? - PullRequest
0 голосов
/ 31 мая 2018

Я хотел бы назначить псевдоним для подвыбора в этом запросе:

(->
  (korma/select* table_a)
  (korma/join
      (korma/subselect table_b
                       (korma/fields :id (korma/raw "COUNT(*) AS count"))
                       (korma/group :id)
   (= :id :id))

Это sql, который я хочу создать:

SELECT * FROM table_a LEFT JOIN (SELECT id, COUNT(*) AS count FROM table_b GROUP BY id) AS b b.id = id;

Но на данный момент sqlКорма просто генерирует:

SELECT * FROM table_a LEFT JOIN (SELECT id, COUNT(*) AS count FROM table_b GROUP BY id) id = id;

1 Ответ

0 голосов
/ 01 июня 2018

Мне нужно было определить суб-выбор как отдельную сущность, см. Ниже:

(korma/defentity sub-select
             (korma/table (korma/subselect table_b
                                           (korma/fields :id(korma/raw "COUNT(*) AS count"))
                                           (korma/group :id)) :b))

(->
  (korma/select* table_a)
  (korma/join sub-select (= :b.id :id)))

, которая генерирует следующий запрос:

SELECT * FROM table_a LEFT JOIN (SELECT id, COUNT(*) AS count FROM table_b GROUP BY id) a.id = id;
...