问题在于我无法弄清楚1241错误的原因是什么,我试图创建一个子查询,其中包含了预设,我刚刚完成了另一个代码中的一个。所以它与以前工作过的非常相似,所以我不太清楚这个错误的原因是什么。
select ite.title, ite.unit_price
from items ite
where ite.title = 'No Rest For The Weary' AND ite.unit_price =
(select (ite.unit_price * .1) as '1', (ite.unit_price - '1') as '2'
from items ite)
编辑:目标是在子查询中将unit_price增加10%。 自我加入的新代码:
select ite.title, ite.unit_price
from items ite
where ite.title = 'No Rest For The Weary' AND ite.unit_price =
(select a.unit_price as unit_price1, b.unit_price as unit_price2
from items a, items b
where a.unit_price <> b.unit_price);
这是怎么回事?我认为我做得很好,尽管我没有添加10%的部分仍然会得到同样的错误。
答案 0 :(得分:0)
子查询返回两个值,并尝试将其与列ite.unit_price进行比较。换句话说,你将数组或列表与标量进行比较。
将子查询更改为 (从项目ite中选择(ite.unit_price * .1)为&#39; 1&#39; 但仍然是查询很奇怪,但不应该给出错误
编辑:
select ite.title, (ite.unit_price * 1.1) AS unit_price
from items ite
where ite.title = 'No Rest For The Weary'
如果您只想要10%的价格
答案 1 :(得分:0)
认为你应该在&#39;中使用&#39;和最大值:
select ite.title, ite.unit_price
from items ite
where ite.title = 'No Rest For The Weary'
AND
( ite.unit_price =
(select max(a.unit_price)
from items a, items b
where a.unit_price <> b.unit_price)
or
ite.unit_price =
(select max(b.unit_price)
from items a, items b
where a.unit_price <> b.unit_price) )