- PR -

JDBCのSQL文の発行

1
投稿者投稿内容
花瓶夫
ベテラン
会議室デビュー日: 2003/10/01
投稿数: 50
投稿日時: 2003-11-16 22:58
いつもお世話になっています。MVCモデルで行っているのですが、textで入力した顧客IDを検索してのレコードを取り出したいのですが、内部結合してすべての項目を取り出すSQL文はどのようなソースコードとなるのでしょうか?(mysqlを使用しています)基本的な事ですいません。どなたかご教授願います。

Beansのプロパティ
顧客ID : InKokyakuid


-スキーマ定義-
テーブル名 1 :kokyakukanri
顧客ID : kokyakuid
氏名 : shimei
携帯番号: keitai
(サブ)会社ID: kaishaid

テーブル名 2 :kaishakanri
会社ID: kaishaid
会社名: kaishamei
住所: juusho

Keisuke
大ベテラン
会議室デビュー日: 2003/10/24
投稿数: 105
投稿日時: 2003-11-17 06:14
どのようなクエリを試して見られましたか?
そして結果はどうでしたか?
begood
ベテラン
会議室デビュー日: 2003/09/12
投稿数: 97
お住まい・勤務地: とうきょー
投稿日時: 2003-11-17 13:19
これは、SQL文を聞かれているのですか?それとも、MVCでの組み方を聞かれているのですか?MVCの構造にもよるので、どのようなソースにしてよいのか、そのMVCを見てみる必要があります。また、MVCを使用してコードを書くとなると、そこにはフレームワークも存在していて・・・、うーん、なんと答えてよいやら・・・SQL文は通常、interfaceにおいて、そこから変数をとってくるなんてことをします。そのようなことを聞かれていますか?

もし、SQL文のことであれば、表に変数をおいて、それでその表の変数に対して、カラム名を指定してあげて、最後に、WHEREの条件でマッチさせます。また、検索IDは、通常、バインド変数(オラクルでいえばですけど・・・)を使用して、その変数にIDの値を実際にいれて、検索をするという形で行います。(DBのパフォーマンスを向上させるため)。

質問の内容を勘違いしていたら、すいません・・・
花瓶夫
ベテラン
会議室デビュー日: 2003/10/01
投稿数: 50
投稿日時: 2003-11-17 22:32
皆様、書き込み有難う御座います。SQL文そのもの自体をお尋ねしたしたかったのです。不明確な文章ですいませんでした。

select (kokyakuid,shimei,keitai,kaishaid,kaishamei,juusho)from kokyakukanri,kaishakanri where kokyakukanri.kaishaid = kaishakanri.kaishaid
これで、テーブルの結合ですべての項目表示されると思いますが、

beansのパラメータ(InKokyakuid) とkokyakuidが一致するレコード検索してくるには、上記のSQL文にwhere kokyakuid = InKokyakuidをどう付け加えたらよいのでしょうか? そのまま上記の文に付け加えるだけでいいのでしょうか? SQL初心者の私です。何卒宜しくお願いします。




teto
ベテラン
会議室デビュー日: 2002/07/31
投稿数: 61
投稿日時: 2003-11-17 22:58
下記参照のこと。
仕事でやっているのでしたら、周りに聞きましょう。
http://www003.upp.so-net.ne.jp/kayo3/link/db/top.html
Keisuke
大ベテラン
会議室デビュー日: 2003/10/24
投稿数: 105
投稿日時: 2003-11-17 23:07
クエリーとしては、単に “AND” で続ければいいですね。
コードとしては、InKokyakuid の内容を取り出して、
パラーメータとして渡す必要があります。
1、文字列として連結してクエリーを生成する。
2、PreparedStatement を使用して、setXXX を使う。

1の方が簡単ですが、SQLインジェクションに注意する必要があります。
begood
ベテラン
会議室デビュー日: 2003/09/12
投稿数: 97
お住まい・勤務地: とうきょー
投稿日時: 2003-11-18 01:32
変数名を使用してみてください。すべて書いてしまうと、だれが開発をしているのかわからなくなってしまうため、概略だけ述べるとして

テーブルに変数を設定します。
from table1 a, table2 b

でもって、2つのテーブルで一致するカラムをwhere条件で、まとめる・・・。たとえば、カラム名がcol1だとすると、
where a.col1 = b.col2
なんて感じです。

実際には、もっとほかにいろいろと考えないといけないことがあって、left outer joinとか、right outer joinとか(あれ、これってオラクルだけかな?)詳しくは専門書を確認してみてください。あと、実際にDBをSQLで直にたたきにいくと結構DBは簡単です。おそらく、1週間程度で習得できるものなので、一度試してみるのもいいかもしれません。
花瓶夫
ベテラン
会議室デビュー日: 2003/10/01
投稿数: 50
投稿日時: 2003-11-18 12:30
皆様有難う御座いました。解決しました。また宜しくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)