select g.id, ifnull(s.count, 0)
from t_goods g
left join v_stock s on g.id = s.id
这个sql运行良好,然后我创建了一个视图:
create or drop view v_goods_stock as
select g.id, ifnull(s.count, 0)
from t_goods g
left join v_stock s on g.id = s.id
我收到错误:
[Err] 1064 - 您的SQL语法错误
我的mysql版本是5.5。
我尝试删除像这样的ifnull函数
create or drop view v_goods_stock as select g.id id, s.count c from t_goods g left join v_stock s on g.id = s.id
我仍然得到同样的错误。
答案 0 :(得分:2)
您必须为计算值指定列名:
create or replace view v_goods_stock as
select g.id, ifnull(s.count, 0) as count
from t_goods g
left join v_stock s on g.id = s.id
默认列名是表达式本身ifnull(s.count, 0)
,它不是有效名称(包含括号,逗号等)
答案 1 :(得分:0)
您的问题非常简单,与IFNULL()
无关:MySQL无法识别语法CREATE OR DROP VIEW
。 (Here's the syntax reference for CREATE VIEW
.)
删除单词OR DROP
,或者如果在视图已存在时需要此语句,则将其替换为OR REPLACE
。