1

ねえ、私はWindows5.1.39-communityとLinux5.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上で動作させる方法はありますか?

4

2 に答える 2

0

これがそれと関係があるかどうかはわかりませんが、Linux MySQLテーブルでは大文字と小文字が区別されますが、Windowsテーブルでは大文字と小文字が区別されません(ファイルシステムが原因であると思われますProductproduct

それが本当にあなたの質問の問題の原因であるかどうかはわかりませんが、それはあなたがぶつかってしまうかもしれない壁であり、私はそれを育てるべきだと思いました。

于 2011-07-13T03:12:26.437 に答える
0

SQL "as b" columnResult は特に SQL に基づいており、idOffer の WHERE 句は既に修飾されており、同じである必要があるため、この列要素の group by を削除します。誤って含まれている空白データやその他のデータが存在し、「ID1」が「ID1」とは異なると想定することしかできませんが、誤って解釈されています。

于 2010-05-17T10:41:43.117 に答える