我写过:
select
sum(case when is_trigger = "1" and when lh.ladder_change = "1" then 1 else 0 end),
lh.member_id as "SFID"
From
leeds_so.leenk_ladder_config as lc
left join leeds.leenk_ladder_history as lh on lc.id = lh.ladder_config_id
group by lh.member_id
limit 100;
我得到一个错误:
ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.member_id as "SFID"
From
leeds_so.leenk_ladder_config as lc
left join le' at line 2
我不确定是什么错误。有人能帮我吗?谢谢!
1条答案
按热度按时间cnjp1d6j1#
and when
不是有效的sql。放下枪when
. 您可以进一步简化逻辑:笔记:
mysql将布尔表达式视为数字,其中“1”表示真,“0”表示假。所以,不
case
是需要的。你可能打算
inner join
或者换table。您正在按第二个表中的列进行聚合。当没有对手的时候,就是这样NULL
.双引号在sql中不是字符串的合适分隔符。字符串使用单引号。
我认为常数实际上是数字,所以根本不需要引用。