teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

質問の訂正

2015/04/11 12:16

投稿

anna10
anna10

スコア24

title CHANGED
File without changes
body CHANGED
@@ -203,7 +203,8 @@
203
203
  文章が長くなってしまい申し訳ないのですが、DAOで問い合わせる場合のSERCHNAME_QUERYの記述方法を
204
204
  どなたか教えて頂けないでしょうか?よろしくお願い致します。
205
205
 
206
+ 【追記】
206
- 回答誠にありがとう御座います。大変申し訳ないのですが、私が前提条件を失念しておりました。
207
+ 大変申し訳ないのですが、私が前提条件を失念しておりました。
207
208
  というのも、あいまい検索を掛けるテーブルはITEMですが、もう1つGENREというテーブルがあり、この2つを
208
209
  紐付けた上で全体の情報をSELECT処理により表示していました。
209
210
 

1

内容の修正

2015/04/11 12:16

投稿

anna10
anna10

スコア24

title CHANGED
File without changes
body CHANGED
@@ -201,4 +201,45 @@
201
201
  こちらは現在お蔵入りです。
202
202
 
203
203
  文章が長くなってしまい申し訳ないのですが、DAOで問い合わせる場合のSERCHNAME_QUERYの記述方法を
204
- どなたか教えて頂けないでしょうか?よろしくお願い致します。
204
+ どなたか教えて頂けないでしょうか?よろしくお願い致します。
205
+
206
+ 回答誠にありがとう御座います。大変申し訳ないのですが、私が前提条件を失念しておりました。
207
+ というのも、あいまい検索を掛けるテーブルはITEMですが、もう1つGENREというテーブルがあり、この2つを
208
+ 紐付けた上で全体の情報をSELECT処理により表示していました。
209
+
210
+
211
+ CREATE TABLE GENRE(
212
+ ID NUMBER(2),
213
+ NAME VARCHAR(20) NOT NULL,
214
+ Primary Key(ID)
215
+ );
216
+
217
+ CREATE TABLE ITEM(
218
+ ID NUMBER(5),
219
+ GENRE_ID NUMBER(2),
220
+ NAME VARCHAR(50) NOT NULL,
221
+ SALE_DATE DATE NOT NULL,
222
+ FAVORITE NUMBER(1) NOT NULL,
223
+ STORK CHAR(1) NOT NULL,
224
+ COM VARCHAR(200),
225
+ Primary Key(ID),
226
+ FOREIGN Key(GENRE_ID) REFERENCES GENRE(ID)
227
+ );
228
+
229
+ テーブルITEMの外部キーがテーブルGENREのIDとなります。
230
+
231
+ 最初は既に情報が登録されているテーブルITEMのNAMEにのみ検索を掛けて、条件にあったものを持って来ればよい、と
232
+ 考えていましたが、ジャンルを登録した後の、全ての情報取得は以下のSQLで実行していました。
233
+
234
+ //書籍情報をselect処理により取得するSQL文
235
+ public static final String SELECTBOOK_QUERY =
236
+
237
+ "SELECT TO_NUMBER(ni.ID) ID,ng.NAME GENRE,ni.NAME BOOK,TO_CHAR(ni.SALE_DATE,'yyyy/mm/dd') SALE_DATE,ni.FAVORITE FAVORITE,ni.STOCK STOCK,ni.COM COM" +
238
+ "FROM ITEM ni,GENRE ng WHERE ni.GENRE_ID = ng.ID ORDER BY ni.ID ";
239
+
240
+ 両方のテーブルを結合し、登録されているジャンルとテーブルITEMの内容を、テーブルITEMのID順に並べるという処理内容です。
241
+
242
+ 教えて頂いたSQLを実行した所DAOのIDを持ってくる所で直ぐに例外に入ったので、
243
+ 恐らく前の自分の考えが間違っていた為だと思われます。回答して頂いたのに申し訳ないです。
244
+
245
+ なので、正しい質問としては、「上記のSQLを基にしたSERCHNAME_QUERY」の記述方法、になります。本当にすみません。