1

ここに声明があります:

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

4 に答える 4

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
于 2012-12-03T19:21:12.407 に答える
2

order は予約語です。「逃げる」必要があります。

MySQL の場合、バック ティック (`) を使用して列名をエスケープできます。特に、予約語と同じである場合はそうです。

SELECT * FROM `order`

余談ですが、SQL Server は角括弧 [] を使用して列名をエスケープします。

SELECT * FROM [order]
于 2012-12-03T19:21:12.093 に答える
2

注文は予約語です。

逆引用符で囲むか、テーブルに別の名前を付けます。

于 2012-12-03T19:21:29.120 に答える
0

orderは予約済みキーワードです。次のように指定する必要があります

`order` 

あなたのクエリが機能するために

于 2012-12-03T19:33:55.380 に答える