2014-04-07 40 views
1

我運行此查詢:錯誤在MySQL查詢

select sm.stockid as 'id',description as 'descripcion',price as 'precio' 
from stockmaster as 'sm', prices as 'pc' 
where 
sm.stockid=pc.stockid and 
sm.stockid='ESPOLVOREO' and 
curdate() between pc.startdate and pc.enddate; 

,我不斷收到這個錯誤,我沒有權原因:/

#1064 - 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 ''sm', prices as 'pc' where sm.stockid=pc.stockid and sm.stockid='ESPOLVOREO' a' at line 2 

我直接運行查詢在分貝。 謝謝

回答

2

不要將表別名放在引號中。

from stockmaster as sm, prices as pc 
+0

誰說別名不能用引號引起來? :)關閉。手冊https://dev.mysql.com/doc/refman/4.1/en/identifiers.html我失蹤了什麼? – user1954544

+0

別名不能用單引號括起來。通常的引用字符是反引號。您可以使用雙引號,但前提是您已啓用ANSI_QUOTES。 – Joni

+0

'SELECT 1 AS 1,2 AS'two';'從官方手冊中,我認爲它默認啓用。 (更改關於單引號的答案) – user1954544

0
description as 'descripcion', price as 'precio' 

變化

sm.description as 'descripcion', sm.price as 'precio' 

關於你需要表(添加表名前列名)。

+0

如果這是問題,那麼數據庫會抱怨字段列表中模糊的列。這種情況下的錯誤消息顯示了一般語法錯誤。 – Joni

0

首先,如user3456640所述,不要用別名寫別名。

SELECT sm.stockid AS id, description AS descripcion, price AS precio 

其次,你在調用中缺少一些別名。應該看起來像這樣。

SELECT sm.stockid AS id, 
sm.description AS descripcion, 
pc.price AS precio 
FROM stockmaster AS sm, prices AS pc 
where 
sm.stockid=pc.stockid AND 
sm.stockid='ESPOLVOREO' AND 
curdate() BETWEEN pc.startdate AND pc.enddate;