2015-12-28 41 views
1

SQL:SQL INNER JOIN的多个表错误

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; 

ERROR: #1064 - 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., orderregel., product., klant. FROM orderregel INNER JOIN klant O' at line 1

我的数据库:订单(订单ID,客户ID(FC)),行项目(OrderregelId,订单ID(FK),产品编号(FK),客户ID( FC)),顾客(客户ID,姓名,名字),产品(产品编号,名称)

我想从谁拥有自己的顺序为每个行项目显示product.Naam,klant.Naam

回答

2

这条线:

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

还需要勾选保留MySQL是order

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

注意其中的错误开始,告诉你:

right syntax to use near '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; 
+0

编辑SQL:SELECT * FROM 'orderregel' \t INNER JOIN''klant' ON order'.KlantId = klant.KlantId \t INNER JOIN'product' ON orderregel.ProductId = product.ProductId \t INNER JOIN' order' ON orderregel.OrderId ='order'.OrderId; 错误:#1054 - 在“关于条款” 未知列“order.KlantId”但是我相信,我输入正确的列名-.-“ – Selimhan40

+0

固定的,谢谢! 最终的SQL:SELECT * FROM'orderregel' INNER JOIN''klant' ON orderregel'.KlantId = klant.KlantId INNER JOIN' product' ON orderregel.ProductId = product.ProductId INNER JOIN'order'线项目。订单ID ='order'.OrderId; – Selimhan40

+0

@ Selimhan40这是伟大的,光滑听到它。 * *欢呼只为'order'表错了名字。 –

0

内的快速重新排序加入语句可能帮助(未测试)

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;