• 締切済み

MySQLでのクエリについて困っています

現在JSPとMySQLを使用してシステムを開発しています。 データをMYSQLから呼び出すとき、 多数のテーブルを結合しないと必要な情報すべてを 得ることができません。 そこでMySQLの方で結合したクエリを保存して、 保存したクエリをJSPで参照(呼び出す)形にしたいのです。 丁度Accessのクエリをフォームで使用するイメージです。 MySQLではクエリの保存ができるのでしょうか? できるのであればその方法を教えてください。 探しても中々いい情報が見つからず、困っています。 どうぞよろしくお願いいたします。

noname#97350
noname#97350
  • MySQL
  • 回答数2
  • ありがとう数1

みんなの回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

Mysqlのバージョンによりますが、 選択クエリはビューで、更新、削除、追加クエリはストアドプロシージャで データベースに登録できるはずです。 詳細はマニュアルなりで調べてください。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

JSPはよくわからないですが、普通にひな形作っておけば プリペアードステートメントでSQLに流せませんか?

関連するQ&A

  • Access クエリのようなモノは?

    こんにちは。MySQL超初心者です。 Accessには一度作成したら保存しておいて、随時使用できるテーブルのようなクエリがありますが、MySQLにもあるのでしょうか? 集計開始日の残高を保存しているテーブルAと毎日の入出金を保存しているテーブルBがあり、特定の科目の現在残高を確認したいと考えています。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • Access VBA内でのクエリの紐付け

    お世話になります。 Accessにて、ローカルに12個(月毎)にクエリを作成し、そのらのクエリを紐付けてテーブルを作成しようとしています。 しかし、できればローカルにクエリを作成したくないので、VBA内で仮想?にクエリを作成し、それらを紐付けて最終的にテーブルを作成したいと考えています。 VBAのイメージ的には以下のような感じです。  フォーム上のボタンがクリックされた際に、    MySQL1 = 1月分の選択クエリ    MySQL2 = 2月分の選択クエリ    MySQL3 = 3月分の選択クエリ            ・            ・    MySQL11 = 11月分の選択クエリ    MySQL12 = 12月分の選択クエリ    MySQL13 = 上記12個の選択クエリを紐つけたテーブル作成クエリ(tempを作成)    DoCmd.RunSQL MySQL13    'tempが作成されたら、そのテーブルをソースとしたレポートをOpen          DoCmd.OpenReport "年間実績"    以上です。 それぞれの選択クエリを、 Set RS0 = DB.OpenRecordset(MySQL0) Set RS1 = DB.OpenRecordset(MySQL1) のようにして、MySQL13のテーブル作成クエリで、RS0、RS1を使用すればよいかと思ったのですが、『入力テーブルまたはクエリ”RS0”が見つかりませんでした。そのテーブルやクエリが存在していること、または名前が正しいことを確認してください。』と表示され、うまくいきません。 そもそも、上記のように仮想でクエリを作成し、それを紐付けてテーブルを作成することは可能なのでしょうか。よい方法がございましたらご教授願います。 以上、宜しくお願い致します。  

  • XAMPPのMYSQLでスロークエリの出力

    WindowsXP上のXAMPPでMySQL+PHPを使用したサイト開発を行っていますが、 PHP内で実行されるSQLコマンドが正しくMYSQLへ投入されていることを確認したいと考えています。 スロークエリの機能を用いることで、MYSQLに発行されたSQLコマンドを表示できると思いますが、 XAMPPのMYSQLに対して、どのような設定を行えばよいのかわかりません。 いろいろ調べたところだと、単純にLinux上のスロークエリ設定をでは動作しないようです。 どのような設定を行えば、XAMPP上でスロークエリをファイル出力できるのでしょうか。

    • ベストアンサー
    • MySQL
  • Access クエリの最大項目数

    教えてください。 開発環境はAccess97です。 複数テーブルを互いに結合し、一つの選択クエリー[A]を 作成した後、フォーム[B]に関連付けて[B]上のテキスト ボックスで[A]のデータを表示したいと思います。 (一つのテキストボックスは一つの項目を表示する) 選択クエリーのフィールド数は最大128個までしか 設定できないと思うのですが、 フォーム[B]に一度に300個程度のデータを表示するには どうすればよいのでしょうか? サブフォームを使用せずにこれを実現することは可能でしょうか?

  • パラメータクエリを一つにまとめたい

    クエリ1を基にフォーム1を作成、 クエリ2を基にフォーム2を作成、 クエリ1も2もパラメータクエリを使用していて フィールド名は「番号」データ型はテキスト型です。 そして新規にフォーム3を作成しフォーム1とフォーム2をドラッグしました。 この状態でフォーム3をダブルクリックすると パラメータの入力を2回求められますがどちらも同じ番号を入力しています。 (「001」などを2回入力) これを1回にすることは可能でしょうか? ・番号フィールドの基テーブルはクエリ1と2は違うテーブルです。 ・クエリ1と2は一つにまとめたくありません。 フォーム3上に別々に表示させたいです。 ・クエリ1には全ての番号がありますがクエリ2には抜けている番号があります。 「クエリ1の全レコードとクエリ2の同じ結合フィールドのレコードだけを含める。」で全ての番号を表示できる状態です。 説明が下手ですいません。 アドバイスお願い致します。

  • Access 選択クエリーの入力制限

    Access97を使用しています。 選択クエリーを用いて単一テーブルの任意の列を表示 します。 元データは単一テーブルなので、選択クエリーに対して 新規レコードを追加すると、そのまま元のテーブルにも レコードが追加されますよね? この選択クエリーの機能を参照のみに限定し、 レコード追加・更新は制限したいのですが、これを実現 することはできるのでしょうか? データシート形式のフォームなら選択クエリーとほぼ 同じイメージで操作できるし、これならプロパティの 「追加の許可」「更新の許可」あたりを設定すれば レコード追加を抑制できると思いますが、極力選択 クエリーを使いたいんです。 よろしくお願いします。

  • ACCESSとMySQLのODBC接続について

    環 境  :WINXP,ACCESS2003   MySQL-4.0.16-nt ドライババージョン:MySQL3.51.06 <現象> ACCESS2003で2000形式にて作成したDBからMySQL-4.0.16-ntで作成されたDBのあるテーブルを参照 したいのです。(現状参照のみ) が、接続はうまくいったようなのですが、肝心のACCESSで使用することができません。 <インストールの背景> ODBCドライバとしてMySQL3.51.06をインストールし、 色々な文字コードに対応できるようにするDLLファイル*を指定の場所にコピーしました。 *株式会社ソフトエイジェンシーさんのサイトから 「myodbc-3.51.06-conv_ujis.zip」をダウンロード。 解凍後の「myodbc3.dll」を「C:\WINDOWS\SYSTEM32」へ上書きコピーした。 TestDataSourceでの接続テストではSuccessfullyと表示されましたが、肝心のACCESS側でテーブルを表示しようとしてもエラーが出てACCESS自体が応答なしの状態になってしまいます。(テーブルを直接×、クエリ作成も×) どなたか、どこをどうチェックすれば良いのか、、 教えていただけますか?

    • ベストアンサー
    • MySQL
  • アクセスの更新クエリについて(親子テーブル)

    はじめまして。 アクセスを勉強しはじめて2週間の初心者です。 説明がわかりずらいかもしれませんが、ご容赦ください。 以下のようなテーブルがあります。 ●親テーブル(装置名称と装置番号の組み合わせが主キー) ・装置キー ・装置名称 ・装置番号 ・収容No-1 ・収容No-2 ●子テーブル(主キー設定なし) ・装置キー(親テーブルの装置キーと参照整合:1対多) ・収容No-3 ・最新情報 ●参照テーブル(主キー設定なし) ・収容No-1 ・収容No-2 ・収容No-3 ・最新情報 子テーブルの最新情報フィールドを参照テーブルの最新情報に 更新する更新クエリを作成したいのですが、うまく実行ができ ません。 クエリの作り方の基本がわかっていないと思いますが、私が作 った方法は、 1.上記3つのテーブルをクエリのデザインビューで表示 2.親テーブルと参照テーブルの収容No-1、2を結合 3.子テーブルと参照テーブルの収容No-3を結合 4.クエリの種類を更新クエリに変更 5.テーブルに子テーブル、フィールドに最新情報を設定 6.レコードの更新欄に[参照テーブル]![最新情報]を設定 です。 ビューで確認すると殆どのデータが空白で表示されております。 どのあたりに悪さがあるかをご教授いただけますと助かります。 ご不明な点がありましたら、何なりとお伝えください。 よろしくお願いします。

  • access フォームで情報表示かつ、データ入力業務について

     accessのフォームでデータ入力業務の場合について。  作成者が退職しており、システムにどうしても理解できない所があり、ご教授願います。  現状、お客様の情報表示(社名、住所等)かつ、お客様に関する調査結果のデータ入力を1つのフォームで表示させています。サブフォームは使用しておりません。  疑問点は、IDをテキストボックスに手入力し、エンターキーを押すと、お客様情報が表示されるという仕組みです。検索ボタン等はありません。それらしき記述もありません。 テーブル1・・・ID、お客様情報  テーブル2・・・ID、調査結果 テーブル3・・・上記全情報の保存用テーブル 選択クエリ・・・テーブル1+テーブル2(IDで結合)(IDは、テーブル2のものを使用) フォーム・・・クエリを基にしたもの。 ・テーブル1は完全にユニークなデータです。 ・テーブル2は調査結果の保存テーブルではなく、「サブフォームを使う事無く、既知の情報表示とデータ入力を1つのフォームで表示できる」ようにする為の、言わば「ダミー」のようなテーブルと思われます。テーブル2に事前に情報入力はしません(フォームで入力する事になります)。またテーブル2を後々参照する事もありません。 ・テーブル3は最終的な保存先です。フォームにはその為の保存ボタンがあります。その際にはADOを使っているようです。(ここらへんは今の私の知識の限界です。)  例えば新規IDをテーブル1に作成します。テーブル1にはデータはありますが、テーブル2にはまだ存在しない状態です。この時点で、その新規IDを抽出条件に、このクエリを実行すると、1行だけ抽出されます。普通に考えれば「抽出結果は0件」ではないかと思うのですが・・・。  新たにシステムを構築する為、この仕組みがどうしても必要なのです。  お願いします。

  • テーブル名とクエリ名は一緒にできないのでしょうか?

    アクセス2003を使っています。 オブジェクト:テーブルに「テーブル1」を作って フォームにも「テーブル1」と言うフォームを作れました。 しかしクエリには「テーブル1」と言うクエリは作れませんでした。 テーブル名とフォーム名は一緒にできるけど、 テーブル名とクエリ名は一緒にできないのでしょうか? 混乱しています。