ベストアンサー ※ ChatGPTを利用し、要約された質問です(原文:ID単位で合計する) MySQL 4.0を使用してname単位でpriceの合計を一覧表示する方法とは? 2008/11/19 23:54 このQ&Aのポイント MySQL 4.0を使用して、name単位でpriceの合計を一覧表示するには、GROUP BY句を使用します。以下のようなSQL文を使用することで、nameとpriceの合計を一覧表示できます。 SELECT name, SUM(price) FROM テーブル名 GROUP BY name;priceの範囲を指定する場合、WHERE句を使用します。 例えば、priceが3000以上のデータのみ表示したい場合、以下のようなSQL文を使用します。 SELECT name, SUM(price) FROM テーブル名 WHERE price >= 3000 GROUP BY name; ID単位で合計する お世話になっております。ご指導いただきたく投函させていただきます。 no id name date price ------------------------------- 1 4 大城 11-01 2000 2 1 田中 11-02 -800 3 8 小林 11-03 3000 4 2 安藤 11-04 2000 5 4 大城 11-05 -500 6 2 安藤 11-05 1000 と、以上のようなテーブル(MySQL 4.0)がありまして、 以下のように、name単位でpriceの合計を一覧表示させるには、どのようなSQLとなるのでしょうか? 4 大城 3500 8 小林 3000 2 安藤 3000 1 田中 -800 また、このpriceの範囲(~以上や、~まで)を指定する場合なども教えていただけると幸いです。 groupで処理するのかな?とは思いつつ、調べているのですが、なかなか欲している情報が得られず困っております。 これも知識が乏しいが故のことですが、アドバイスいただけると幸いです。 お忙しい中恐縮ですが、宜しくお願い致します。 質問の原文を閉じる 質問の原文を表示する みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー yambejp ベストアンサー率51% (3827/7415) 2008/11/20 09:57 回答No.1 >4 大城 3500 id=4は1500じゃないの? SELECT id,name,SUM(price) as sumprice FROM テーブル GROUP BY id のような感じで。 priceの範囲というのは、たとえば1000円以上を合計するとか? それならWHERE price>=1000とか、普通に・・・ もし結果が1000円以上なら・・・みたいなら HAVINGをつかう。 >これも知識が乏しい SQLの初歩の話なので、いやみ抜きで基本から勉強した方がよいですよ 質問者 お礼 2008/11/20 19:01 yambejpさんへ こんばんは。お世話になっております。 ご親切にソースまでご提示頂き、ありがとう御座います。 無事、願っていた結果を得ることが出来ました。 >SQLの初歩の話なので、いやみ抜きで基本から勉強した方がよいですよ 全くです;; 合計した金額はどのような形のWEHER句になるのか判らなかったもので伺ったのですが、考え方は一緒なのですね。 兎にも角にも、早速のアドバイスをありがとう御座いました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピューターデータベースMySQL 関連するQ&A PHPでMySQL内のデータの合計値を算出 お世話になっております。 PHPからMySQL5を呼出すスクリプトを制作しています。 no id date price ---------------------------- 1 4 2013-4-29 2100 2 2 2013-5-1 3150 3 2 2013-5-31 4200 4 7 2013-6-1 2100 5 2 2013-6-2 1575 6 4 2013-6-2 8400 というようなデータがありますが、下記のように、2番のid、かつ現在から1ヵ月前の期間内のpriceの合計額を算出したいのですが、 SQLおよび変数はどのようなものになりますでしょうか? id: 2 total: 5775 ネットで調べながらSQL文などを色々と試していますが、PHPの変数をどのようにしていしたらいいのかが分からず、結果を返すことが出来ずに立ち止まっている状況です。 大変お恥ずかしい質問と認識しているところですが、アドバイスのほど頂戴出来れば幸いです。 宜しくお願い申し上げます。 重複したフィールドに関して こんばんは。お世話になっております。 PHPにてMySQLを用いて掲示板のようなものを作成しているのですが、初心者なりの考えで、新規投函のときに、あるフィールドにUNIXタイムスタンプを登録し、返信に関しては初回投函した際のタイムスタンプを登録する事により、スレッドを分別しようと考えております。 出来上がりのイメージとしては、この「教えて!goo」のように、初回投函したタイトルを一覧表示し、その先にその件に関する回答が表示させたいと思います。 先にも述べたように、初心者なりの考えで、新規投函・回答・返信、すべて新規レコードを追加という流れで、タイムスタンプによる同一の数値により、新規投函か否か、と分別できれば・・と考えておりました。 しかし、初心者故にか、普段用いている下記コードでは、全てのレコードが対象となってしまい、同一の数値(タイムスタンプ)による分別(初回投函のみを検索結果として表示させたい)が出来ない事に気付きました。 フィールドの考え方も含めて、ご教授いただけたら幸いです。お忙しい中恐縮ですが宜しくお願い致します。 mysql_connect('localhost','root','*****'); mysql_select_db('test'); $sql= "select * from member_bbs where id = '$id'; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows <> 0){ while($row = mysql_fetch_array($result)){ ・ ・ ・ MYSQL(カテゴリー)での質問かとも思いましたが・・・宜しくお願い致します。 テーブル結合方法について MySQL5.1で、Table a ,Table b から、Table cのように取り出したいのですが、 SQLでSELECTする方法がわかりません。 Table b優先だけど、Table aにしかデータがない場合もあるといった感じです。 Table a No Name 1 加藤 2 佐藤 3 田中 Table b No Name 2 佐藤先輩 4 田辺先輩 Table c No Name 1 加藤 2 佐藤先輩 3 田中 4 田辺先輩 どうか、よろしくお願いします。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム getがらphpに日本語を送ったとき化け文字に <?php ・・・・・・・・ $mousikomi_hi1 = $_GET["mousikomi_hi1"]; $name =$_GET["name"];// "田中"; $sql = "SELECT $mise.kokyaku_no FROM $mise WHERE name='$name' AND DATE_FORMAT(mousikomi_hi1,'%Y/%m/%d') ='$mousikomi_hi1'"; mysql_query("set names utf8"); $rows = mysql_query($sql, $sv) or die("mysql query Error"); $row = mysql_fetch_array($rows, MYSQL_ASSOC); ・・・・・・・・・ ?> var mousikomi_hi1 = $F("mousikomi_hi1"); var name = document.addE.name4.value; //alert(name); xhrObj.open("get", "add_meigara.php?hannbaitenn="+hannbaitenn+"&mousikomi_hi1="+mousikomi_hi1+"&name="+name); getがらphpに日本語を送ったとき $name =$_GET["name"] に化け文字?(□/□□)になり SQLの検索ができません 直接 $name = "田中";とすると 検索できます 初心者で、あまりわかりませんが、よろしくお願いします。 mysqlからphpで値を取得する こんにちは、php初心者のBlackwinglsです。 mysql上に住所録があります。 mysql> select count(*) from jyusyo where seibetu = 'man' and name = 'tanaka'; とやると男性の田中さんは、6名と表示されます。 これをphpでやりたいのですが、 $sql ="select count(*) from jyusyo where seibetu = 'man' and name = 'tanaka'"; $result = mysql_query($sql,$con); ここから先の記述がよく分かりません。 mysql_fetch_array や mysql_result 等を試してみたんですが、基本的な事が分かってないので当然上手く動いてくれません(^^;) どなたかアドバイスを頂けたら幸いです。 環境 apache 1.3.26 mysql 3.23.49 php 4.1.2 ps php初心者にお勧めのWebPageありましたらあわせて紹介ください。 前のidをコピーするSQL文 MySQLを使って管理画面を作っております。 $sql='INSERT INTO players(name,price,position_id) VALUES(?,?,?)'; という文で使ったidをコピーしてから次のINSERTの文でそのidの番号を使って別テーブルのカラムにその番号をINSERTするしくみを作りたいのですがなかなか上手くいきません。 var_dump($last_id);では番号がコピーされているのですが、INSERTができません。 いつもお世話になってしまい大変恐縮なのですが、どなたかご教授いただけないでしょうか?よろしくお願い致します。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="../../xxxxx/team.css"/> <title>選手追加完了</title> </head> <body> <div id="main"> <?php $pro_name=$_POST['name']; $pro_price=$_POST['price']; $pro_position_id=$_POST['position_id']; $pro_team=$_POST['team_name']; $pro_name=htmlspecialchars($pro_name); $pro_price=htmlspecialchars($pro_price); $pro_position_id=htmlspecialchars($pro_position_id); $pro_team=htmlspecialchars($pro_team); $dns = "mysql:host=localhost; dbname=player;charset=utf8"; $dns_id = "xxxxx"; $dns_pw = "xxxxxxx"; try { $conn = new PDO($dns, $dns_id, $dns_pw, array(PDO::ATTR_EMULATE_PREPARES => false)); } catch (Exception $e) { echo 'ERROR: ' . $e->getMessage(); die(); } try { //トランザクションを開始する。オートコミットがオフになる $conn->beginTransaction(); //処理その(1) $sql='INSERT INTO players(name,price,position_id) VALUES(?,?,?)'; $stmt=$conn->prepare($sql); $data[]=$pro_name; $data[]=$pro_price; $data[]=$pro_position_id; $stmt->execute($data); //直近id取得 $last_id_sql = "SELECT LAST_INSERT_ID() as id"; $stmt = $conn->prepare($last_id_sql); $stmt->execute(); $last_id = $stmt->fetch(PDO::FETCH_ASSOC); $stmt->closeCursor(); //確認var_dump($last_id); //処理その(2) $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql2='INSERT INTO team(team_id,team_name) VALUES(?,?)'; $stmt=$conn->prepare($sql2); $data2[]=$pro_team; $data2[]=$last_id; $stmt->execute(array($last_id,$pro_team)); $stmt->closeCursor(); //確認var_dump($last_id); //変更をコミットする $conn->commit(); } catch(PDOException $e){ //変更をロールバックする $conn->rollBack(); echo 'ERROR:' . $e->getMessage(); } // 切断 $conn = null; print $pro_name; print'を追加しました。<br />'; ?> <a href="xxxxx">戻る</a> </div><!--main--> </body> </html> 登録データの繰り返し削除 こんばんは。お世話になっております。 DBを利用し掲示板を作っているのですが、初回に投函されたものだけを検索結果として表示させ、チェックボックスにて削除できるよう、以下のようなスクリプトを記述してみたのですが、value値をauto_incrementであるidだと、初回投函のみのデータだけが削除され、投函の返信は残ったままとなってしまいます。 // データベース接続 ・ ・ // 削除データ取得 if (@$_POST["c1"]) { $c1 = $_POST["c1"]; $sql = "DELETE FROM table1 WHERE (id IN ("; for ($i = 0; $i < count($c1); $i++) { $sql .= intval($c1[$i]); if ($i < count($c1) - 1) { $sql .= ", "; } else { $sql .= "))"; } } mysql_query($sql, $conn) or die("エラー"); } //テーブル接続 ・ ・ while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { echo "<form method=\"POST\" action=\"".$_SERVER["PHP_SELF"]."\">"; echo "<br>"; echo "<input type=\"checkbox\" name=\"c1[]\" value=\"".$row["id"]."\">"; ・ ・ 以下省略 以上のままだと初回投函のみの削除となるため、一回の動作で返信も削除したいために、投函に属する値(id_keyとして同じ値を設定済み)にしたいと考えているのですが、for文中におけるコード設定が分からず、アドバイスをいただければと投函させて頂きました。 ループ条件の設定によるものなのでしょうが、その条件を設定するためのコードまで浮かんで来ません。 何処をどう説明したら良いのか分からず、分かりにくい説明になっておりますが、ヒントなどいただければ幸いに思っております。お忙しい中恐縮ですが宜しくお願い致します。 mysqlからphpに表示ですべての項目を出したい phpとmysqlの勉強をしているのですが、出したい項目がでてきてくれません。 今mysqlでidとnameとpriceの項目を作っているのですが、以下だとどうしてもnameしか出てきてくれません。 どうすれば3つの項目がでてくれますでしょうか? よろしくお願いします。 <? mysql_connect('localhost' , 'root' , '') or die(mysql_error()); mysql_select_db('db1'); mysql_query('SET NAMES UTF8'); $sql="SELECT * FROM syouhin"; $res=mysql_query($sql); $options=""; while($row = mysql_fetch_array($res,MYSQL_ASSOC)){ $options.="<input type=\"radio\" name=\"syouhin1\" value='{$row['id']}' checked> {$row['name']}\n<br>"; } $select="{$options}</select>\n"; print $select; ?> 思ってもいない結果に困っています お世話になっております。 データベース名:payment_daibiki(MySQL 5.1) daibiki_no postage_price_min postage_price_max daibiki_price 1 0 9999 315 2 10000 29999 420 3 30000 99999 630 4 100000 300000 1050 という内容のテーブルがあります。 これは商品を発送する際の代引手数料が格納されているのですが、 postage_price_minと、postage_price_maxを参照して、この範囲内の手数料を 抽出するというものです。 例えば、発送する商品の代金が、2240円の場合、 postage_price_minより多きく、postage_price_maxより小さいものを参照するので、 求める手数料は315を返したいと考えています。 そこで質問なのですが、 SELECT * FROM payment_daibiki WHERE postage_price_min <= '2240' AND postage_price_max >= '2240' とSQLを実行させると、該当するデータはないと返されてしまいます。 初歩的な質問ですが、どこに誤りがあるのでしょうか? また、一番小さな手数料を求めるため、 SELECT * FROM payment_daibiki ORDER BY daibiki_price DESC LIMIT 1 と実行させると、630が返ってきてしまいます。 初歩的な事とは重々承知していますが、色々と設定を変えても返ってくるデータが どれも予想を反するもので、どこに誤りがあるのか分からなくなってきました。 以上ですが、このような状況、どういったことが考えられるのでしょうか? お忙しいなか恐縮ですが、アドバイスのほど頂戴出来れば幸いです。 宜しくお願い申し上げます。 サブクエリなしで2つのテーブルを集計する方法 テーブルA id|cnt|name 1 2 田中さん 2 5 鈴木さん テーブルB id|cnt|name 1 4 田中さん 2 4 鈴木さん サブクエリを使用せず、上記2つのテーブルを集計し、 下記のように出力できるSQLはありますでしょうか? ■期待する総合ランキング結果 id|cnt|name 2 9 鈴木さん 1 4 田中さん P.S まだまだ、安価なレンタルサーバはMySQLは4.0が多く苦労します・・ 一行目のレコードを2度表示させたい。 レコードを読み込むのとは別に、最終書き込み者(ソートした最初のレコード)を表示させたいのですが、mysql_fetch_array($rst)を読み込ませると1位行目が消え、次ぎにmysql_fetch_array($rst)が読み込む時には2行目からになります。 ------------------------- 最終書き込み者 一太郎さん「一番目のタイトル」 -レコードの一覧- □一太郎 一番目タイトル □次郎 2番目のタイトル □佐武郎 三番目のタイトル ------------------------- としたいのですが。 SQLを2度実行すればできるのですが、無駄な処理な気もします。 別のテーブルやこの情報だけtextに保存するのも無駄な気もするし。 //一番目をゲット $sql = "select * from siritori order by db_no desc limit 1;"; $rst = mysql_query($sql,$con); //$rst2 = $rst; $col = mysql_fetch_array($rst); print "最終書き込み者".$col["name"]."さん".$col["title"]."<hr>"; //一覧を表示 $sql = "select * from siritori order by db_no desc limit 10;"; $rst = mysql_query($sql,$con); //SQL配列読み込み(select文) while($col = mysql_fetch_array($rst)){ print $col["name"]."さん".$col["title"]."<br>".$col["kome"]."<hr>";} //$rst2 = $rst; 配列をコピーできないかなー?とかもやったのですができない。 なんとか巧い解決方法はないでしょうか? 連想配置や、MySQLには詳しくないのでお教えください。 売上管理 お世話になっております。 勉強がてらネットショップを作っているのですが、売上一覧を表示すべくところで立ち止まってしまいました。 以下にテーブルの構成および得たい結果を書き残しますので、ご教示頂けた幸いです。(MySQL5) テーブル名:member member_no name1 1 佐藤 2 小島 3 石田 4 鈴木 テーブル名:sales sales_no sale_slip_no sales_date member_no goods_name request_money receipt_maney 1 1 2013-6-6 2 キュウリ 5250 2 1 2013-6-6 2 イチゴ 3150 3 1 2013-6-6 2 バナナ 8400 4 2 2013-6-7 1 りんご 5250 5 2 2013-6-7 1 3000 6 3 2013-6-8 4 ほうれん草 9450 7 3 2013-6-8 4 しいたけ 2100 8 4 2013-6-8 3 マンゴー 6300 ・各テーブルにあるmember_noカラムは対となる紐付くデータです。 ・sale_slip_noは伝票番号です。 ・request_moneyは商品単位での小計金額です。 ・receipt_maneyは入金金額(またはポイントが支払いに使われた時の金額)です。 ・質問と無関係と思われるカラムは省略しています。 以上のような構成のテーブルがありますが、以下のように伝票番号毎に別け、かつ伝票毎の合計額を求めたいと考えています。 sale_slip_no sales_date name request_money 4 2013-6-8 石田 6300 3 2013-6-8 鈴木 11550 2 2013-6-7 佐藤 2250 1 2013-6-6 小島 16800 以上ですが、join group sumの組み合わせになるのかな・・と考え調べ、試行錯誤を繰り返していますが、描いている結果を得ることが出来ません。どのようなSQLになるのかご教示いただければ幸いです。 また、売上データとして蓄積させるテーブル構成を作ったのは初めてですが、もっと適切なものがあれば、こちらも併せてアドバイスを頂けると幸いです。 お忙しいなか恐縮ですが、宜しくお願い申し上げます。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム 4つのテーブルで構成される売上データをまとめたい お世話になっております。4つのテーブルの結合について質問させて下さい。(MySQL5) データベースの内容は販売に関するもので、以下のような4つのテーブルがあります。(不必要なカラムは省略しています) テーブル名:goods(商品 goods_no | goods_name 1 りんご 2 みかん 3 いちご テーブル名:member(顧客データ) member_no | member_name 1 鈴木 2 佐藤 3 小林 4 斉藤 テーブル名:slip(伝票番号) slip_no|sales_member_no|sales_date 1 2 2013-6-1 2 4 2013-6-1 3 1 2013-6-2 4 3 2013-6-3 ※slip.sales_member_no = member.member_noです。 テーブル名:sales(売上から入金までのデータを時系列で登録) sales_no|sale_slip_no|sales_goods_no|sales_goods_price|sales_goods_cnt|request|receipt 1 1 2 350 5 1750 2 1 3 400 3 1200 3 2 1 200 5 1000 4 2 3 400 4 1600 5 1 receipt 2950 6 2 receipt 2600 7 3 1 200 8 1600 8 4 2 350 5 1750 9 3 receipt 1600 10 4 receipt 1750 ※sales.sale_slip_no=slip.slip_noです。 sales.sales_goods_no=goods.goods_noです。 以上のようなテーブルがあり、4つのテーブルを結合して、 伝票単位で、売上詳細(sales)、商品名(goods)、顧客名(member)を以下のように伝票番号順で一覧で表示したいと考えていますが、エラーだったり、期待している結果を得ることが出来ません。 どのようにすれば宜しいのかアドバイスのほど頂戴出来れば幸いです。 slip_no 商品名 個数 単価 請求額 入金額 1 みかん 5 350 1750 1 いちご 3 400 1200 1 2950 2 りんご 5 200 1000 2 いちご 4 400 1600 2 2600 3 りんご 8 200 1600 3 1600 4 みかん 5 350 1750 4 1750 以上、お忙しい中恐縮ですが、宜しくお願い申し上げます。 自動的にchekboxを mysqlからデータを表示して自動的にチェックボックスを 生成し、チェックしてsubmitしたらそれを表示したいのですが、checkboxのvalue値を自動生成できず悩んでいます。ご伝授お願いしたいます。 while ($row = mysql_fetch_assoc($result)) { print($row['name_no']); print($row['name']); print($row['price']); print('<input type="checkbox" name="no[]" value= row['name_no'])'); } print(' <input type="submit"></form>'); $idno=join($_POST["no"]); print($idno); mysqlで検索結果にupdateをしたい mysqlで検索した結果に対して 同一テーブルの他のカラムに共通の文字列を書き込みたいです。 たとえば、 SQLで検索した結果に対して、対象レコードの「price」の項目に 「300」の文字列を登録するイメージです。 例: 元のレコード name price りんご みかん なし 「ん」で対象レコードを検索した結果イメージ: name price りんご みかん このとき、「ん」に該当する「price」のカラムに 「300」と値段を登録したいです。 理想の処理結果のイメージ: name price りんご 300 みかん 300 お手数ですが、アドバイスよろしくお願いします。 DBから取得したデーター+配列データーの受取り (過去に似たような質問をしたのですが、その続きの質問です。) よろしくお願いします。 ※セッションID(以下(3)のDBのカラム(ssid)で使用)を 発行した状態で以下を行いたいのですが、(3)がうまくいきません。 (1)商品リストのDBを以下のように作り -------------------------------------------- (テーブル:products) product_id | product_cd | name | price 1 | 10 | 本01 | 1300 2 | 11 | 本02 | 1200 3 | 20 | サプリ01 | 4800 4 | 30 | ストレッチボード | 9800 5 | 30 | 健康シューズ | 6800 -------------------------------------------- (2)上記をmysql_fetch_arrayで取り出し<table>を作成。 その際に、商品選択をする(checkbox)と(数量)を入力する<input> を加え<form>でkaimonoKago.phpへ送信します。 (products.php) <?php (途中省略) mysql_query("set names utf8"); $sql = "select * from products "; $result = mysql_query($sql) ; ?> <form method="post" action="kaimonoKago.php"> <table> <tr> <th></th> <th>商品コード</th> <th>商品名</th> <th>価格(税込</th> <th>数量</th> </tr> <?php while($row = mysql_fetch_array($result)){ print "<tr>\n"; print "<th><input type=\"checkbox\" name=\"check[]\" value=\"".$row["product_id"]."\"></th>\n"; print "<td>".htmlspecialchars($row["product_cd"])."</td>\n"; print "<td>".htmlspecialchars($row["product_name"])."</td>\n"; print "<td>¥".number_format($row["price_intax"])."</td>\n"; print "<td><input type=\"text\" name=\"kazu[".$row["product_id"]."]\" size=\"3\"></td>\n"; print "<input type=\"hidden\" name=\"ssid\" value=\"".$_SESSION['ssid']."\" />\n"; print "</tr>\n"; } ?> <input type="submit" name="order" value="注文" /> </form> (3)<form>で送られてきた情報を、買い物カゴDB ----------------------------------------------- (テーブル名:kaimonoKago) (カラム: ssid, product_cd, product_name, price_intax, kazu, shoukei) ----------------------------------------------- にインサートしたいのですが、うまくいきません。正しい記述を教えて下さい。 mysql_fetch_arrayやらwhile文やら配列が2つあったりして、どのように組み立てたら いいのか、基本的な考え方も教えていただければ幸いです。 (自分がつくった、うまくいかないコード) ↓ (kaimonoKago.php) $check=(isset($_REQUEST["check"]) and is_array($_REQUEST["check"]))?$_REQUEST["check"]:array(); $kazu=(isset($_REQUEST["kazu"]) and is_array($_REQUEST["kazu"]))?$_REQUEST["kazu"]:array(); foreach($check as $val){ if($kazu[$val]>0){ $sql = "select * from products where product_id ='" . mysql_real_escape_string($val) . "'"; $result = mysql_query($sql); while($products = mysql_fetch_array($result)){ $product_cd = $products['product_cd']; $product_name = $products['product_name']; $price_intax = $products['price_intax']; $kazu = $kazu[$val]; $shoukei = $price_intax * $kazu; $sql = "insert into kaimonoKago ( ssid, product_cd, product_name, price_intax, kazu, shoukei ) values ( '" . mysql_real_escape_string ( $_SESSION['ssid'] ) . "', '" . mysql_real_escape_string ( $product_cd ) . "', '" . mysql_real_escape_string ( $product_name ) . "', '" . mysql_real_escape_string ( $price_intax ) . "', '" . mysql_real_escape_string ( $kazu ) . "', '" . mysql_real_escape_string ( $shoukei ) . "' )"; mysql_query($sql); } } } } よろしくお願いします。 SQLの集計で「全て」の合計も表示したい SQLの集計について教えて下さい。DBはSQLiteかMySQLです(下記テストはSQLiteにて) 「meibo」テーブルから結果(1)を表示するにSQL文(1)で実現できました。 ●meiboテーブル name type univ ---------------------------------- 鈴木一郎 国立 東大 高橋ニ郎 国立 東大 田中三郎 国立 京大 山本四郎 公立 大阪府立大 佐藤五郎 私立 慶応大 小川六郎 私立 早稲田大 ●結果(1) type別の人数 type 合計 ------------------- 公立 1 国立 3 私立 2 ●SQL文(1) SELECT type, count(name) FROM meibo GROUP BY type ORDER BY type ; ここに「全ての合計」行を加えて結果(2)を表示したい場合、1つのSQL文で可能でしょうか? それともSQL文(2)のように2つの文で行なうか、SQL文(1)の結果をプログラム側で処理して全ての合計を得るなどするしかないでしょうか?(typeの「全て」は無くても構わない) もし1つのSQL文で可能ならどういう風になるのでしょうか? ●結果(2) type 合計 ------------------- 全て 6 ←この行を追加したい 公立 1 国立 3 私立 2 ●SQL文(2) SELECT type, count(name) FROM meibo ; SELECT type, count(name) FROM meibo GROUP BY type ORDER BY type ; DBへのinsert後のid(auto_increment)の取得 お世話になってます。質問ばかりで恐縮ですが、お知恵をお借りしたく投函させて頂きます。 mysql_connect('localhost','root','******'); mysql_select_db('test'); $hiduke = date("y-m-d"); $sql = "insert into test_tb values(0, '$hiduke', …)";//0はフィールド名id(auto_increment属性) mysql_query($sql); 上記のようなコードにて、MySQLへデータをinsertしているのですが、このとき、auto_increment属性を持ったフィールド名(id)の番号を取得するには、どのようなコードになるのでしょうか? http://dev.mysql.com/doc/refman/4.1/ja/odbc-and-last-insert-id.html 上記マニュアルに、SELECT LAST_INSERT_ID()を使うと説明がありますが、実際のコード(PHPスクリプト)にするところまで結びつける事が出来ません。 id番号を取得し、その番号をセッションに代入させたいのです。 初歩的な質問ばかりと、お恥ずかしい限りですが、アドバイスのほど宜しくお願い申し上げます。 mysql と php で、2テーブル結合の検索! mysql と php を勉強しはじめで、解からないので、どなたか教えてください! 2テーブルあります。( 例 ’name’ と ’jusyo’ テーブルです。) ’name’テーブルは、NO int、IC_NO char(5)、NAME char(18)、 ・・・・・です。 ’jusyo’テーブルは、NO int、NAME_KANA char(30)、TEL char(6)、JUSYO char(50)、 ・・・・です。 この2テーブルを、《NO int、》で、左結合(レフトジョイン)させます。 テキスト入力フィールド、があり、検索ボタンで検索させようと思っています。 テキスト入力フィールドには、IC_NO を入力し、’jusyo’テーブルの、NAME_KANA TEL JUSYO・・・ を表示させたいと思っています。 <?php extract($_POST); echo " <form action=\"kensaku2.php\" method=\"post\" > <p>検索番号 : <input type=\"text\" name=\"nam\" value=\"$nam\" size=\"10\"> <input type=\"submit\" value=\"検索\"></p>\n </form> "; if($nam<>''){ mysql_connect('localhost','root','******'); mysql_select_db('データベース名'); $sql= "select * from name left join jusho on NO=NO"; $sql= "select * from name where IC_NO like '%$nam%'"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>該当データがありません。</p>\n"; } else { while($row = mysql_fetch_array($result)){ echo "詳細情報"; echo "<br />\n"; echo "<br />\n"; echo "インター名 : "; echo $row["NAME_KANA"]; echo " "; echo "<p>"; ↓ としてますが、NAME_KANAが表示されません、どこが間違っていますか? 考え方がおかしいのでしょうか? Mysqlで複数テーブルの参照 Mysqlで複数テーブルの参照 お世話になります。Mysqlについて質問させてください。 現在、それぞれnameとdateとflagの3フィールドをもつテーブルが、2つあります。 もともと別の用途で準備したものなのですが、 2つのテーブルのflagを参照して、1のものだけdate順に並べることが出来るでしょうか? ■テーブル1 ----------------------------- name | date |flag| ----------------------------- 田中 | 2010-06-01 | 1 ----------------------------- 山田 | 2010-09-01 | 1 ----------------------------- 田辺 | 2010-10-01 | 2 ----------------------------- 田所 | 2010-11-01 | 2 ----------------------------- ■テーブル2 ----------------------------- name | date |flag| ----------------------------- 加藤 | 2010-10-01 | 1 ----------------------------- 佐藤 | 2010-07-01 | 1 ----------------------------- 織田 | 2010-12-01 | 2 ----------------------------- 斎藤 | 2010-01-01 | 2 ----------------------------- ■求める結果 ----------------------------- name | date |flag| ----------------------------- 田中 | 2010-06-01 | 1 ----------------------------- 佐藤 | 2010-07-01 | 1 ----------------------------- 山田 | 2010-09-01 | 1 ----------------------------- 加藤 | 2010-10-01 | 1 ----------------------------- 具体的なSQL文でなくとも構いません。参考になるような情報、サイトをご存じでしたら、教えてください。 よろしくお願いします。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター データベース SQL ServerOraclePostgreSQLMySQLNoSQLその他(データベース) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
yambejpさんへ こんばんは。お世話になっております。 ご親切にソースまでご提示頂き、ありがとう御座います。 無事、願っていた結果を得ることが出来ました。 >SQLの初歩の話なので、いやみ抜きで基本から勉強した方がよいですよ 全くです;; 合計した金額はどのような形のWEHER句になるのか判らなかったもので伺ったのですが、考え方は一緒なのですね。 兎にも角にも、早速のアドバイスをありがとう御座いました。