2013-04-21 85 views
2
select g.id, ifnull(s.count, 0) 
from t_goods g 
left join v_stock s on g.id = s.id 

這個SQL工作得很好,然後我創建一個視圖:錯誤創建視圖使用IFNULL函數在MySQL

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 - You have an error in your SQL syntax

我的MySQL版本5.5。

我嘗試刪除這樣

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 

IFNULL函數我仍然得到同樣的錯誤。

回答

0

你的問題很簡單,並且與IFNULL()無關:MySQL不能識別語法CREATE OR DROP VIEW。 (Here's the syntax reference for CREATE VIEW.

刪除單詞OR DROP或將其替換爲OR REPLACE如果在視圖已經存在的情況下需要此語句才能工作。

+0

非常感謝你! – user1434702 2013-04-21 03:35:14

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),這不是一個有效的名稱(包括括號,逗號等)

+0

謝謝,但我仍然得到同樣的錯誤。 – user1434702 2013-04-21 03:05:47