質問編集履歴

2

質問の訂正

2015/04/11 12:16

投稿

anna10
anna10

スコア24

test CHANGED
File without changes
test CHANGED
@@ -408,7 +408,9 @@
408
408
 
409
409
 
410
410
 
411
+ 【追記】
412
+
411
- 回答誠にありがとう御座います。大変申し訳ないのですが、私が前提条件を失念しておりました。
413
+ 大変申し訳ないのですが、私が前提条件を失念しておりました。
412
414
 
413
415
  というのも、あいまい検索を掛けるテーブルはITEMですが、もう1つGENREというテーブルがあり、この2つを
414
416
 

1

内容の修正

2015/04/11 12:16

投稿

anna10
anna10

スコア24

test CHANGED
File without changes
test CHANGED
@@ -405,3 +405,85 @@
405
405
  文章が長くなってしまい申し訳ないのですが、DAOで問い合わせる場合のSERCHNAME_QUERYの記述方法を
406
406
 
407
407
  どなたか教えて頂けないでしょうか?よろしくお願い致します。
408
+
409
+
410
+
411
+ 回答誠にありがとう御座います。大変申し訳ないのですが、私が前提条件を失念しておりました。
412
+
413
+ というのも、あいまい検索を掛けるテーブルはITEMですが、もう1つGENREというテーブルがあり、この2つを
414
+
415
+ 紐付けた上で全体の情報をSELECT処理により表示していました。
416
+
417
+
418
+
419
+
420
+
421
+ CREATE TABLE GENRE(
422
+
423
+ ID NUMBER(2),
424
+
425
+ NAME VARCHAR(20) NOT NULL,
426
+
427
+ Primary Key(ID)
428
+
429
+ );
430
+
431
+
432
+
433
+ CREATE TABLE ITEM(
434
+
435
+ ID NUMBER(5),
436
+
437
+ GENRE_ID NUMBER(2),
438
+
439
+ NAME VARCHAR(50) NOT NULL,
440
+
441
+ SALE_DATE DATE NOT NULL,
442
+
443
+ FAVORITE NUMBER(1) NOT NULL,
444
+
445
+ STORK CHAR(1) NOT NULL,
446
+
447
+ COM VARCHAR(200),
448
+
449
+ Primary Key(ID),
450
+
451
+ FOREIGN Key(GENRE_ID) REFERENCES GENRE(ID)
452
+
453
+ );
454
+
455
+
456
+
457
+ テーブルITEMの外部キーがテーブルGENREのIDとなります。
458
+
459
+
460
+
461
+ 最初は既に情報が登録されているテーブルITEMのNAMEにのみ検索を掛けて、条件にあったものを持って来ればよい、と
462
+
463
+ 考えていましたが、ジャンルを登録した後の、全ての情報取得は以下のSQLで実行していました。
464
+
465
+
466
+
467
+ //書籍情報をselect処理により取得するSQL文
468
+
469
+ public static final String SELECTBOOK_QUERY =
470
+
471
+
472
+
473
+ "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" +
474
+
475
+ "FROM ITEM ni,GENRE ng WHERE ni.GENRE_ID = ng.ID ORDER BY ni.ID ";
476
+
477
+
478
+
479
+ 両方のテーブルを結合し、登録されているジャンルとテーブルITEMの内容を、テーブルITEMのID順に並べるという処理内容です。
480
+
481
+
482
+
483
+ 教えて頂いたSQLを実行した所DAOのIDを持ってくる所で直ぐに例外に入ったので、
484
+
485
+ 恐らく前の自分の考えが間違っていた為だと思われます。回答して頂いたのに申し訳ないです。
486
+
487
+
488
+
489
+ なので、正しい質問としては、「上記のSQLを基にしたSERCHNAME_QUERY」の記述方法、になります。本当にすみません。