mysql - MySql 中 LIMIT 子句的使用不适用于子查询

标签 mysql

我在 MySql 中有一个名为 order_item 的表,其中包含特定订单的详细信息,该订单具有以下字段(以及其他一些我可能认为没有必要在此处发布的字段)。

  1. 订单 ID
  2. 产品 ID
  3. 订购数量
  4. 价格

我需要计算最畅销的产品。我正在使用以下 SQL 语句。

SELECT o.prod_id, sum(o.qty_ordered) as qty_ordered, p.prod_img 
FROM order_item o, product_image p 
WHERE o.prod_id=p.prod_id AND 
p.prod_id IN(SELECT prod_id FROM product_image limit 1) AND
order_id IN(SELECT order_id FROM order_table WHERE od_status='Completed')
GROUP BY prod_id 
HAVING SUM(qty_ordered)>=5
ORDER BY prod_id DESC

以上查询计算最畅销的产品。唯一的问题是上面语句中提到的子查询

p.prod_id IN(SELECT prod_id FROM product_image limit 1)

不起作用。 MySQL 提示

This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

此子查询检索 product_image 表中维护的产品图像,其中同一产品有多个产品图像,而我只需要显示其中一个。

我的服务器版本是5.1.48。还有其他方法可以解决这种情况吗?

最佳答案

看看您的查询是否需要带有 IN 子句的行? 您已经在与以下对象进行连接:

WHERE o.prod_id=p.prod_id

您所说的行似乎是多余的,因为连接已经发生了?此外,LIMIT 查询中没有 WHERE 子句。该表中只有 1 行吗?

关于mysql - MySql 中 LIMIT 子句的使用不适用于子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10440129/

相关文章:

mysql - 尝试连接 mysql

mysql - 如何找到另一张 table 上的所有 child ?

php - 计算赞成票和反对票插件的计数

php - 如何更改查询中的 Mysql 变量?

php - PHP 中不区分大小写的查询不起作用

javascript - 在数据表中添加 html 标记添加行

c# - 在 MVC 中将 int 转换为文本

mysql - 如何将文本文件中的数据导入mysql数据库

php - Wamp,PHP MySQL - 连接错误

mysql order by 在此请求中