[PHP-users 29860] Re: サブクエリが使えない場合の方法

鈴木孝征 takamasa @ thaliana.myhome.cx
2006年 7月 24日 (月) 14:25:10 JST


鈴木と申します。

問題の切り分けをしましょう。

1. 最初のcreateはきちんとできていますか。複雑なSQLで問題がみえにくくなり
ます。とりあえず、create temporary...のあとで、もっとシンプルなSQLをつ
かってみてはどうでしょうか。

2. SQLに問題はありませんか。PHPから検索を行う場合でも、SQLが正しく動作し
ないことには話しになりません。MySQLのコンソールで直接、お望みのSQLを入力
してどうなるか確認しましょう。

3. SQLを使いこなせていますか。私のみたところ二番目のSQLはおかしいと思い
ます。たぶん、group byを使っているので、selectできるのは集計関数の結果だ
けだと思います。select count(t1.plant) from ... group by ct1.gidなど。

4. 「どうもうまく行きません」というのでは多くの場合答えようがありませ
ん。PHPのだすエラーメッセージはないのか、取得できると想定しているものと
違うのか、など、あなたの環境において起きていることを正確に、簡潔に示して
ください。

で、たぶん私の想像では二番目のSQLがおかしいのではないかと。MySQLのことは
よくわかりませんが、とりあえず、PHPでどうのこうのと言う前にSQLが正しく動
作することを確認されたほうがいいのではないでしょうか。

あと、問題とは関係ないのですが、最初のcreate ...で、order by以下は必要な
のでしょうか。こうしておいたほうが検索が速くなるなどのことがあるのでしょ
うか。



PHP-users メーリングリストの案内