SQLALchemy为我生成了以下查询:
SELECT count(client.id = user_accounting_journal_entry.client_id) AS count_1
FROM client, user_accounting_journal_entry
WHERE user_accounting_journal_entry.kind = 'debit'
GROUP BY client.name = user_accounting_journal_entry.client_id
注意里面的部分选择:count(client.id = user_accounting_journal_entry.client_id)
。
主要使用MySQL,我不熟悉这种语法,并且很难找到文档。
答案 0 :(得分:0)
您应该熟悉MySQL的语法,至少以这种形式:
select sum(client.id = user_accounting_journal_entry.client_id)
这将计算匹配数。
count()
版本计算表达式不是NULL
的次数。或者等效,它计算两个值都不是NULL
的次数。 。 。看起来很奇怪的东西。更常见的是Postgres,我希望:
select sum((client.id = user_accounting_journal_entry.client_id)::int)
这会将布尔值转换为整数,从而计算匹配数。
查询本身很糟糕:
join
语法join
条件看起来不正确(ID的名称)此外,它看起来并不像是在做一些非常有用的事情。
答案 1 :(得分:0)
count(client.id = user_accounting_journal_entry.client_id)计数表达式不为空的次数。