我需要一些关于此查询的帮助,我不是mysql的专家,所以我只是在学习
我只是在sql上做一些课程,所以我正在阅读手册但是,我只是不知道如何正确...
我尝试了什么
1 - 我在子查询中使用了'*',但似乎无效 2 - 我应该用 - 替换= - 但是剂量(in)是什么意思 3 - 或者你应该从子查询中删除括号。
mysql手册让我发疯,可能是因为我是初学者。
以下查询出了什么问题:
select * from order where orderid = (select orderId from orderItems where itemQty > 50)
答案 0 :(得分:1)
ORDER是一个mysql保留字。用滴答声来逃避它:`order`
此处的保留字列表: http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
此外,您将在子查询中返回一个集合。您可能希望将其限制为1或按照Rahul的建议进行操作,并使用IN运算符代替=来返回组
select * from `order`
where orderid = (
select orderId
from orderItems
where itemQty > 50
ORDER_BY orderId
LIMIT 1
)
答案 1 :(得分:1)
试试这个: -
select * from `order` where orderid in (select orderId from orderItems where itemQty > 50)
ORDER
是一个mysql保留字。另外,我建议您使用IN
代替=
答案 2 :(得分:0)
使用in
。
select * from order where orderid in (select orderId from orderItems where itemQty > 50)
这就是说,如果orderid在子查询的结果中,则为true。