テーブルが2つで、
Aテーブルには、キーワード・カテゴリID
Bテーブルには、本の内容・著者名がある状態で、
Aテーブル
キーワード カテゴリID
1料理 23
2サッカー 5
3将棋 15
4囲碁 14
Bテーブル
内容 著者名
1サッカーでの~ 田中太郎
2パスタ料理の紹介 田中花子
3囲碁の定石 白黒太郎
4将棋の基礎 駒田一郎
これらを【特定のキーワードを入力せず】に
サッカーというキーワードでAテーブルの2とBテーブル1を、
料理というキーワードで1と2、
囲碁というキーワードで4と3
将棋というキーワードで3と4を自動的に関連を持たせて
さらに指定したAテーブルのカテゴリIDだけの結果を表示させたいのですが、
このようなことは可能でしょうか?
(BにカテゴリIDをつける方が簡単に思えるのですが、
上記のようなことは可能なのか教えていただきたいと思っています。)
参考となるコード・知識教えていただければ助かります。
よろしくお願いします。
一例
# サンプルデータ CREATE TEMPORARY TABLE A (`キーワード` TEXT, `カテゴリID` INT); INSERT INTO A VALUES('料理', 23) ,('サッカー', 5) ,('将棋', 15) ,('囲碁', 14) ; CREATE TEMPORARY TABLE B (`内容` TEXT, `著者名` TEXT); INSERT INTO B VALUES ('サッカーでの~', '田中太郎') ,('パスタ料理の紹介', '田中花子') ,('囲碁の定石', '白黒太郎') ,('将棋の基礎', '駒田一郎') ; # 実行文 SELECT A.*, B.* FROM A CROSS JOIN B WHERE A.カテゴリID = 5 AND B.内容 LIKE concat( '%', A.キーワード, '%' ) ;
一例
# サンプルデータ CREATE TEMPORARY TABLE A (`キーワード` TEXT, `カテゴリID` INT); INSERT INTO A VALUES('料理', 23) ,('サッカー', 5) ,('将棋', 15) ,('囲碁', 14) ; CREATE TEMPORARY TABLE B (`内容` TEXT, `著者名` TEXT); INSERT INTO B VALUES ('サッカーでの~', '田中太郎') ,('パスタ料理の紹介', '田中花子') ,('囲碁の定石', '白黒太郎') ,('将棋の基礎', '駒田一郎') ; # 実行文 SELECT A.*, B.* FROM A CROSS JOIN B WHERE A.カテゴリID = 5 AND B.内容 LIKE concat( '%', A.キーワード, '%' ) ;
コメント(0件)