• 締切済み

以下のSQL文を実行したのですが、MySQL server has g

以下の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

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

SELECT count(*) FROM t1 WHERE f1 in (SELECT f1 FROM t2 WHERE group = '1'); だとどうなります? 30件程度どころでは無い件数が出るなら、Where条件が不十分で直積になってるかも。

knonet
質問者

補足

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

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

SELECT * FROM t1 WHERE f1 in (SELECT f1 FROM t2 WHERE group = '1'); だとどうなります? テーブル[t1]の列[f1]にはインデックスがあるのかな?

knonet
質問者

補足

同じエラーが発生したり、そもそも結果が表示されなかったりします。 (phpMyAdminを利用しています) はい、テーブルt1の列f1がインデックスになっています

関連するQ&A