2012-12-03 69 views
1

這裏的語句:SQL:LEFT JOIN問題,我似乎無法找出

SELECT order.order_id, order.member_id, order.date_ordered, coupon.coupon_name, coupon.coupon_type, coupon.coupon_amount 
FROM order 
LEFT JOIN coupon 
ON order.coupon_id = coupon.coupon_id 

而這裏的MySQL錯誤:

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 'order LEFT JOIN coupon ON order.coupon_id = coupon.coupon_id' at line 2 

兩個表都有一個coupon_id。我只是不明白我做錯了什麼?

+2

我猜「秩序」應該是反引號,因爲它是一個關鍵字 – a1ex07

+1

也許ORDER關鍵字使問題 – vlcekmi3

回答

4

order是保留字,您應該逃避它:

SELECT `order`.order_id, `order`.member_id, `order`.date_ordered, 
     coupon.coupon_name, coupon.coupon_type, coupon.coupon_amount 
FROM `order` 
LEFT JOIN coupon 
ON `order`.coupon_id = coupon.coupon_id 
+0

上帝......我多麼愚蠢。非常感謝。 – dcolumbus

2

訂單是一個保留字。你需要「逃避」它。

對於MySQL,您可以使用反標(`)來轉義列名,尤其是在碰巧與保留字相同的情況下。

SELECT * FROM `order` 

另外,SQL Server使用方括號[]來轉義列名稱。

SELECT * FROM [order] 
+0

逃脫如何????? –

2

秩序是一個保留字。

將它放在反引號中或將您的表命名爲其他名稱。

0

order是保留關鍵字。您需要將其指定爲

`order` 

爲您的查詢工作