SQL错误1241:子查询麻烦

时间:2018-04-16 19:45:23

标签: mysql sql subquery

问题在于我无法弄清楚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%的部分仍然会得到同样的错误。

2 个答案:

答案 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) )