All pastes #637400 Raw Edit

Anonymous

public text v1 · immutable
#637400 ·published 2007-07-28 21:20 UTC
rendered paste body
SA 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)