昨年はうまくいきましたが、今年はスキーマを少し変更してデータが異なります。今度は "Subqueryが1行以上を返します"というエラーで失敗します。LIMIT 1はいつ複数の行を返しますか?
クエリはこれです:
update mytable as q
set p_ID = (
select ap.pID
from aptable as ap
where ap.ID = q.ID
and ap.txnDate is not NULL
order by ap.txnDate
limit 1 offset 2
)
奇妙な、えっ?
は、複数の行を返す場合見つけるために - 「?ここでap.ID =」不可能であるべきで、Iは添加でクエリを調製しました各有効なID値のループでクエリを実行しました。何を推測する - それはすべての方法を介して働いた。
ここで起こっていることのアイデアはありますか?私はそれを推測している
サブクエリが結果を返さない場合はどうなりますか?それはちょうど悪いエラーメッセージかもしれませんか? – knabar
どのバージョンのMySQLですか? [このバグ](http://bugs.mysql.com/bug.php?id=20519)は関連性があると思われますが、5.0.25で修正されました。 – ruakh
@knabar - 私はIDを一度に実行したとき、そのケースを見たことがあります。正常に完了しました。しかし、アイデアをありがとう。 –