MySQL不同版本的其他结果

时间:2010-05-17 10:01:07

标签: mysql mysql-error-1242

嘿,我在Windows 5.1.39-community和linux 5.1.39-log上有2个版本的mysql 我执行一个查询:

SELECT `o`.`idOffer`, 

       `o`.`offer_date`, 
       `p`.`factory`, 
       `c`.`short` AS `company`, 
       `s`.`name` AS `subcategory`, 
       `ct`.`name` AS `category`,
       count( (select count(1) from product where idProduct=idOffer group by idOffer) ) as b
 FROM `Offer` AS `o` 
 LEFT JOIN `Product` AS `p` ON o.idOffer = p.idOffer 
 LEFT JOIN `company` AS `c` ON o.company = c.id 
 LEFT JOIN `Subcategory` AS `s` ON s.idSubcategory = o.idSubcategory 
 LEFT JOIN `Category` AS `ct` ON ct.idCategory = s.idCategory 
 WHERE (o.idOffer = p.idOffer) GROUP BY `o`.`idOffer`
在Windows上它可以正常工作,但在linux上它说:

ERROR 1242 (21000): Subquery returns more than 1 row

是否可以在没有任何mysql更新/降级的情况下在linux上运行它?

2 个答案:

答案 0 :(得分:0)

由于你的SQL“as b”columnResult特别基于SQL,并且idOffer的WHERE子句已经符合条件且应该是相同的,所以我将删除该columnar元素的组。我只能假设可能存在一些空白数据或其他错误包含的数据,并且“ID1”与“ID1”不同会被错误地解释。

答案 1 :(得分:0)

不知道这与它有什么关系,但Linux MySQL表区分大小写,而Windows表不是(因为文件系统,我怀疑),无论如何,你有Product和{{1}这会导致一些问题。

不知道问题中是否真的是问题的原因,但是你可能最终会陷入困境,我认为应该提出来。