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上运行它?
答案 0 :(得分:0)
由于你的SQL“as b”columnResult特别基于SQL,并且idOffer的WHERE子句已经符合条件且应该是相同的,所以我将删除该columnar元素的组。我只能假设可能存在一些空白数据或其他错误包含的数据,并且“ID1”与“ID1”不同会被错误地解释。
答案 1 :(得分:0)
不知道这与它有什么关系,但Linux MySQL表区分大小写,而Windows表不是(因为文件系统,我怀疑),无论如何,你有Product
和{{1}这会导致一些问题。
不知道问题中是否真的是问题的原因,但是你可能最终会陷入困境,我认为应该提出来。