rendered paste bodySA code:
session.query(User).order_by(desc(select([func.count(1)], user_subscriptions_table.c.user_id==users_table.c.id)))
mysql> select * from user_subscriptions;
+---------+---------------+
| user_id | subscriber_id |
+---------+---------------+
| 10008 | 10012 |
| 10009 | 10012 |
| 10012 | 10008 |
| 10010 | 10008 |
| 10011 | 10008 |
+---------+---------------+
This is wrong! (Generated by SQL Alchemy):
mysql> SELECT tg_user.user_id from tg_user ORDER BY (SELECT count(1) FROM user_subscriptions, tg_user WHERE user_subscriptions.subscriber_id = tg_user.user_id) DESC;
+---------+
| user_id |
+---------+
| 1 |
| 10000 |
| 10001 |
| 10002 |
| 10003 |
| 10004 |
| 10005 |
| 10006 |
| 10007 |
| 10008 |
| 10009 |
| 10010 |
| 10011 |
| 10012 |
+---------+
14 rows in set (0.00 sec)
THIS IS CORRECT (self made query):
mysql> SELECT tg_user.user_id from tg_user ORDER BY (SELECT count(1) FROM user_subscriptions WHERE user_subscriptions.subscriber_id = tg_user.user_id) DESC;
+---------+
| user_id |
+---------+
| 10008 |
| 10012 |
| 10011 |
| 10010 |
| 10009 |
| 10007 |
| 10006 |
| 10005 |
| 10004 |
| 10003 |
| 10002 |
| 10001 |
| 10000 |
| 1 |
+---------+
14 rows in set (0.10 sec)