错误1064 - 使用IN语句

时间:2017-03-29 17:31:56

标签: mysql

列出订购Apple Laptop的客户名称(选择您自己的加入类型)。我有客户,订单,订购和产品。我一直收到这个错误

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   在''product'附近,其中product_name ='Apple Laptop')))LIMIT 0,25'at   第4行

select customer.cust_name
from customer
where customer.cust_id in (
        select cust_id
        from ordertable
        where order_id in (
                select order_id
                from orderline
                where product in (
                        select product_id
                        from 'product'
                        where product_name = 'Apple Laptop'
                        )
                )
        )

2 个答案:

答案 0 :(得分:1)

从最后一个select语句中的'product'中删除引号。它是表的名称,因此不需要引用。

答案 1 :(得分:0)

如果没有看到您的架构,这有点挑战性,但在您从'product'删除引号后,错误就是外部子句中没有列product。我们可以推断您在最深的子查询中选择product_id,因此外部where子句可能需要使用product_id而不是product

select customer.cust_name
from customer
where customer.cust_id in (
        select cust_id
        from ordertable
        where order_id in (
                select order_id
                from orderline
                where product_id in ( -- <-- ERROR HERE
                        select product_id
                        from product
                        where product_name = 'Apple Laptop'
                        )
                )
        )