2015-04-03 80 views
0

我试图连接这两个表如何解决1064错误

面临这样的错误

数据库出错错误编号:1064

错误:

您有一个您的SQL语法错误;检查 对应于你的MySQL服务器版本正确的语法使用 附近手册“的顺序客户WHERE order.customer_id = customer.customer_id”在 线2

查询:

SELECT order.order_id,order.order_total, 
customer.first_name,customer.last_name FROM order, customer WHERE 
order.customer_id=customer.customer_id; 

文件名:

d:\ XAMPP \ htdocs中\ compulectronix2 \ system \ database \ DB_driver.php行 编号:330

+0

尝试做到这一点从订单INNER JOIN客户ON order.customer_id = customer.customer_id – 2015-04-03 14:20:52

+0

它不工作@Miladinovic – 2015-04-03 14:24:55

回答

1

“ORDER”是SQL中的保留字。您必须使用反引号引用它:

SELECT 
    `order`.order_id, 
    `order`.order_total, 
    customer.first_name, customer.last_name 
FROM `order`, customer 
WHERE `order`.customer_id=customer.customer_id 

List of reserved words

+0

哇!我不知道订单是一个保留字...非常感谢。它工作 – 2015-04-03 14:39:44

+0

@TarekAziz请你接受答案。 – user4035 2015-04-03 14:42:37

+0

好的... @ user4035 – 2015-04-03 14:48:09

1

每一种语言都有一些储备的话,我们还呼吁那些为关键字。我们不能用这些保留字来创建变量。

这里你的表名是'order',order是mysql中的一个保留字,所以它会产生en错误。你有两个选择

  1. 由于练习不使用MySQL保留字作为表名,所以你可以重命名表。
  2. 如果你不想这样

    SELECT 
        `order`.order_id, 
        `order`.order_total, 
        customer.first_name, customer.last_name 
    FROM `order`, customer 
    WHERE `order`.customer_id=customer.customer_id 
    

希望它会帮助你重新命名表,然后把报价与表名 和用户。快乐的编码。

0

与Join

SELECT `order`.`order_id`, `order`.`order_total`, `customer`.`first_name`, `customer`.`last_name` 
FROM `order` 
JOIN `customer` ON 
`order`.`customer_id` = `customer`.`customer_id`; 

无连接

SELECT `order`.`order_id`, `order`. `order_total`, 
`customer`.`first_name`, `customer`.`last_name` 
FROM `order`, `customer` 
WHERE `order`.`customer_id` = `customer`.`customer_id`; 
+0

感谢您的回答! – 2015-04-03 14:51:21