繁体   English   中英

SQL INNER JOIN多表错误

[英]SQL INNER JOIN multiple tables error

SQL:

SELECT * FROM `orderregel` 
INNER JOIN `klant` ON order.KlantId = klant.KlantId 
INNER JOIN `product` ON orderregel.ProductId = product.ProductId 
INNER JOIN `order` ON orderregel.OrderId = order.OrderId;

错误:#1064-您的SQL语法有错误; 查看与您的MySQL服务器版本相对应的手册,以获取正确的语法以在'order'附近使用。 ,orderregel。 ,产品。 ,klant。 orderregel INNER JOIN klant O'在第1行

我的数据库:订单(OrderId,KlantId(FK)),orderregel(OrderregelId,OrderId(FK),ProductId(FK),KlantId(FK)),klant(KlantId,Naam,Voornaam),产品(ProductId,Naam)

我想展示每一个有自己订单的regel的product.Naam,klant.Naam

这行:

INNER JOIN `klant` ON order.KlantId = klant.KlantId 

您还需要勾选MySQL保留字order

INNER JOIN `klant` ON `order`.KlantId = klant.KlantId 

请注意错误从何处开始,并告诉您:

在'order附近使用正确的语法

同样的事情:

INNER JOIN `order` ON orderregel.OrderId = order.OrderId;

INNER JOIN `order` ON orderregel.OrderId = `order`.OrderId;

改写:

SELECT * FROM `orderregel` 
INNER JOIN `klant` ON `order`.KlantId = klant.KlantId 
INNER JOIN `product` ON orderregel.ProductId = product.ProductId 
INNER JOIN `order` ON orderregel.OrderId = `order`.OrderId;

编辑:按照OP的注释,但在MySQL order保留字周围打勾。

SELECT * FROM orderregel 
INNER JOIN klant ON orderregel.KlantId = klant.KlantId 
INNER JOIN product ON orderregel.ProductId = product.ProductId 
INNER JOIN `order` ON orderregel.OrderId = `order`.OrderId;

内部连接语句的快速重新排序可能会有所帮助(未经测试)

SELECT * FROM `orderregel` 
INNER JOIN `klant` ON orderregel.KlantId = klant.KlantId 
INNER JOIN `product` ON orderregel.ProductId = product.ProductId 
INNER JOIN `order` ON order.OrderId = order.OrderId;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM