No. | 質問・回答 | おれい |
|
[73261] PHP文からMySqlクエリを送り、DBに格納したい |
|
|
OS: Windows XP
ソフトウェア名/バージョン:MySql4.0 & PHP5
ハード機種名/型番:
エラーメッセージなど:エラーなし
その他:
はじめまして、質問させて頂きます。
質問内容は、PHP文から1枚目のテーブル内容をクエリ文を呼び出して2枚目のテーブルにデータを格納したいという単純なものです。
そこで、
$a = mysql_query("select field1 from tbl_1 where genre like 'bbb' group by unique_field;");
while($b= mysql_fetch_array($a)){
$c = $b["field1"];
}
というようにしたのですが、2枚目のテーブルに格納されてくれません。
別の質問板には集計関数を入れていないのにgroup byを使うからまずいとも指摘されました。試しに、count関数やsum関数をいれた文を作ってみたところ、成功しました。
しかし、group byを使わずにunique_field毎のfield1をひっぱりだす方法が思いつきません。
説明が下手ですみません。
説明の意図がつかめない場合は、説明しなおしますので、どうか、ご教授願えませんでしょうか?お願いします。
まっきー 2005年11月29日19:01
|
|
|
|
[73399] |
文章の通り、質問の意味が取れないですね。
2点ほど
目的とするデータがきちんと取れるSQLを投げているのか?
取れているとすると。
2つ目のテーブルに登録するSQLが無いのは省いただけなのか?
group by がいけないと書かれていますが、SQLを直接投げてみて
SQLの構文が正しいことを確認してみては?
こればかりは、DBに入っているデータがこちらでは分りませんので
ご自分で行うしかないでしょう。
ちなみに、重複項目を抜く目的でGroup by を利用することはあります。
草 (未登録) 2005年12月2日10:24
|
|
|
|
[73400] |
よくわからんが多分
select field1 from tbl_1 where genre like 'bbb%' group by unique_field
bbb⇒bbb%
じゃないか?
それだとgroup by するまでも無くbbbしかでてこんだろう
草 (未登録) 2005年12月2日10:26
|
|
|
|
[73406] |
>集計関数を入れていないのにgroup byを使うからまずいとも指摘されました。試しに、count関数やsum関数をいれた文を作ってみたところ、成功しました。
「group by」の使い方の問題とすると...
>しかし、group byを使わずにunique_field毎のfield1をひっぱりだす方法が思いつきません。
下記のようにしては?
「select field1 from tbl_1 where genre like 'bbb' group by unique_field,field1;」
集計を行う「GROUP BY」句
http://www.atmarkit.co.jp/fnetwork/rensai/sql03/sql1.html
以下は、上記のページからの引用です。
『■「GROUP BY」句の制約
「SELECT」句には、GROUP BYで指定した列と集計関数のみを指定することが
できます。
もし、強制的にUnitPriceを表示したい場合は、UnitPriceをGROUP BYに追加
します。』
maido (2696) 2005年12月2日13:08
|
|
|
|
[73668] |
良く見たら・・・・
Group By で括るフィールドは、たしかSELECT 句の中に含まれていなければ
ならなかったはず。
DBの種類によって平気なものが有るのかもしれんが・・・
SQLを直接流した結果を公表してもらえれば解析できます。
unique_field ごとに括っても
unique_field =a
field1 =b
というレコードが複数含まれていたら、
大量のレコードが出てくると思うし、
group by の項目がselect に出てこないのが変な感じだ。
select unique_field,field1 from tbl_1 where genre like 'bbb' group by unique_field,field1
こうか?
と言ってももう見ていないか(笑
草 2005年12月8日16:10
|
|
|
|
( 参照数:1734 日平均:0.3 ) |
|
〜 回答の受付を終了しました 〜 |