Mysql SQL查询语法错误,语法似乎正确

Mysql SQL查询语法错误,语法似乎正确,mysql,Mysql,我不知道这个问题出在哪里。我觉得很好 select o.id, p.date, u.billingName, u.billingPhone, u.billingCompany, u.billingAddress, u.billingCity, u.billingState, u.billingCountry, u.billingZip, u.shippingName, u.shippingPhone, u.shippingCompany, u.shipp

我不知道这个问题出在哪里。我觉得很好

select o.id, p.date, u.billingName, u.billingPhone, u.billingCompany,
       u.billingAddress, u.billingCity, u.billingState, u.billingCountry,
       u.billingZip, u.shippingName, u.shippingPhone, u.shippingCompany,
       u.shippingAddress, u.shippingCity, u.shippingState, u.shippingCountry,
       u.shippingZip, o.layer, o.boardSizeWidth,o.boardSizeHeight, o.quantity
from order o, purchase p, useraccount u
where p.id = 1 and o.id = p.OrderId and u.id = p.UserId 
错误:#1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“order o,purchase p,useraccount u,其中p.id=1和o.id=p.OrderId和u.id”附近使用的正确语法


ORDER
是一个保留关键字。必须使用backtick进行转义

....FROM `Order` o

如果有机会更改标识符,请更改保留关键字列表中不存在的表名。这将避免您将来的头痛。

ORDER
是一个保留关键字。必须使用backtick进行转义

....FROM `Order` o

如果有机会更改标识符,请更改保留关键字列表中不存在的表名。这将避免您将来的头痛。

顺序
需要使用反勾号进行转义

在连接表时,还应使用标准ANSI连接语法。请参见下文,了解如何完成此操作

select ....
from `order` o
inner join purchase p
    on o.id = p.OrderId
inner join useraccount u 
    on u.id = p.UserId
where p.id = 1

作为补充说明,您应该避免在表名和列名中使用保留字

顺序
是一个需要使用反勾号进行转义的表

在连接表时,还应使用标准ANSI连接语法。请参见下文,了解如何完成此操作

select ....
from `order` o
inner join purchase p
    on o.id = p.OrderId
inner join useraccount u 
    on u.id = p.UserId
where p.id = 1

作为补充说明,您应该避免在表名和列名中使用保留字

另一个答案+1表示实际花时间使用OP查询并显示ANSI连接语法。另一个答案+1表示实际花时间使用OP查询并显示ANSI连接语法。两张反对票?这个怎么了?似乎我每天都在无缘无故地获得落选票,不是我;但你为什么在乎你是否有84.2k?不是我,但我也收到了一份。@FreshPrinceOfSO我知道。我没说是你。你知道否决票的真正含义吗?我的印象是,这意味着有另一个答案比被否决的答案更好,从而在两个被否决的选票之间形成明显的区别?这个怎么了?似乎我每天都在无缘无故地获得落选票,不是我;但你为什么在乎你是否有84.2k?不是我,但我也收到了一份。@FreshPrinceOfSO我知道。我没说是你。你知道否决票的真正含义吗?我的印象是,这意味着有另一个答案优于被否决的答案,从而在两者之间形成了明显的区别