SQL:左连接问题,我似乎无法弄清楚

时间:2012-12-03 19:19:31

标签: php mysql sql database

这是声明:

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。我只是不明白我做错了什么?

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

订单是保留字。你需要“逃避”它。

对于MySQL,您可以使用反向标记(`)来转义列名,特别是如果它恰好与保留字相同。

SELECT * FROM `order`

另外,SQL Server使用方括号[]来转义列名。

SELECT * FROM [order]

答案 2 :(得分:2)

订单是保留字。

将其放在反引号中或将其他名称命名为其他内容。

答案 3 :(得分:0)

order是保留关键字。您需要将其指定为

`order` 

让您的查询正常工作