アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のSQL文を実行したのですが、MySQL server has gone awayというエラーが発生してしまいます。
さまざまなサイトを確認したのですが間違いが分からないため質問をさせていただきました。
よろしくお願いします。

SELECT * FROM t1 WHERE f1 = ANY (SELECT f1 FROM t2 WHERE group = '1');

(SELECT f1 FROM t2 WHERE group = '1')では30件程度が該当し、t1は5万行前後です。
MySQL クライアントのバージョン: 5.1.22-rc

A 回答 (2件)

SELECT * FROM t1 WHERE f1 in (SELECT f1 FROM t2 WHERE group = '1');



だとどうなります?

テーブル[t1]の列[f1]にはインデックスがあるのかな?

この回答への補足

同じエラーが発生したり、そもそも結果が表示されなかったりします。
(phpMyAdminを利用しています)

はい、テーブルt1の列f1がインデックスになっています

補足日時:2010/03/20 15:02
    • good
    • 0

SELECT count(*) FROM t1 WHERE f1 in (SELECT f1 FROM t2 WHERE group = '1');


だとどうなります?

30件程度どころでは無い件数が出るなら、Where条件が不十分で直積になってるかも。

この回答への補足

やぱり同じエラーが発生します。
SELECT f1 FROM t2 WHERE group = '1'だけを実行すれば30件なのですが・・・

補足日時:2010/03/20 16:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!