Для чего используется $$ (двойной знак доллара) в угловых?

В соответствии с документами для any запрос будет работать быстрее, если вместо этого использовать явный join:

. Поскольку any () использует коррелированный подзапрос, его производительность не так хороша при сравнении с большими целевыми таблицами, как с использованием соединения.

blockquote>

В вашем случае вы можете сделать что-то вроде:

users = (
    session.query(ZKUser)
    .join(user_groups)
    .filter(user_groups.columns.group_id.in_([1, 2, 3]))
)

Это испускает SQL:

SELECT *
FROM users
JOIN user_groups ON users.id = user_groups.user_id 
WHERE user_groups.group_id IN (1, 2, 3)

43
задан Doug T. 12 October 2013 в 19:56
поделиться