Как упорядочить одну таблицу по количеству значений внешнего ключа в другой?

Основываясь на бриллианском ответе Брайана, вы можете сделать это просто в своем случае:

var inner_id = inner["_id"] as JProperty;
if (inner_id != null)
  inner_id.Remove();
0
задан Rob Fyffe 17 January 2019 в 02:36
поделиться

2 ответа

Спасибо @ sticky-bit, ваше решение сработало, я просто ссылался на неправильный столбец в сравнении.

Окончательный запрос

SELECT ct.id,
       ct.obj_id
       FROM comment_thread ct
            LEFT JOIN (SELECT cc.thread_id,
                              count(*) count
                              FROM comment_comment cc
                              GROUP BY cc.thread_id) x
                      ON x.thread_id = ct.id
       ORDER BY x.count DESC
                        NULLS LAST;
0
ответ дан Rob Fyffe 17 January 2019 в 02:36
поделиться

ORDER BY в подзапросе не имеет (гарантированного) эффекта. Это должно быть для самого внешнего запроса.

Либо используйте коррелированный подзапрос в предложении ORDER BY.

SELECT ct.id,
       ct.obj_id
       FROM comment_thread ct
       ORDER BY (SELECT count(*)
                        FROM comment_comment cc
                        WHERE cc.thread_id = ct.obj_id) DESC;

Или объединение и упорядочение по левому краю по объединенному количеству.

SELECT ct.id,
       ct.obj_id
       FROM comment_thread ct
            LEFT JOIN (SELECT cc.thread_id,
                              count(*) count
                              FROM comment_comment cc
                              GROUP BY cc.thread_id) x
                      ON x.thread_id = ct.obj_id
       ORDER BY x.count DESC
                        NULLS LAST;
0
ответ дан sticky bit 17 January 2019 в 02:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: