このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/db/1299305530/833
#  下記の2つのテーブルから情報を抽出したいのですが、どのようにすればよいでしょうか?  
#   
#  ・抽出対象テーブル1構成 
#  カラム1個目: カラム1A(PK) CHAR型 
#  カラム2個目: カラム1B CHAR型 
#  カラム3個目: カラム1C CHAR型 
#   
#  ・抽出対象テーブル2構成 
#  カラム1個目:カラム2A(PK) CHAR型 
#  カラム2個目:カラム2D(PK) CHAR型 
#   
#  ※テーブルの説明 
#  ・抽出対象テーブル1「カラム1A」と、抽出対象テーブル2「カラム2A」同一の値が設定される 
#  ・"カラム2D"には"01","02","03"・・・"10"の値が設定される 
#   
#  ・抽出したい情報 
#  1個目:カラム1A 
#  2個目:カラム1B 
#  3個目:カラム1C 
#  4個目:カラム2Dの値が"01"のレコードが存在するかのフラグ 
#  5個目:カラム2Dの値が"02"のレコードが存在するかのフラグ 
#  6個目:カラム2Dの値が"03"のレコードが存在するかのフラグ 
#  ・・・ 
#  13個目:カラム2Dの値が"10"のレコードが存在するかのフラグ 
# 
#  例えば、以下のように抽出したいのです 
#   
#  ・抽出対象テーブル1
#  1個目 | 2| 3 
#  --------+--+----- 
#  1111111 | a| 1 
#  2222222 | b| 2 
#  3333333 | c| 3 
#  4444444 | d| 4 
#  5555555 | e| 5 
#   
#  ・抽出対象テーブル2 
#  1個目 | 2 
#  --------+----- 
#  1111111 | 01 
#  1111111 | 02 
#  1111111 | 03 
#  1111111 | 10 
#  2222222 | 01 
#  3333333 | 02 
#  3333333 | 05 
#  4444444 | 03 
#   
#  ・抽出したい情報 
#  1個目 | 2| 3 | 4| 5| 6| 7| 8| 9|10|11|12|13| 
#  --------+--+---+--+--+--+--+--+--+--+--+--+--+-- 
#  1111111 | a| 1| 1| 1| 1| 0| 0| 0| 0| 0| 0| 1| 
#  2222222 | b| 2| 1| 0| 0| 0| 0| 0| 0| 0| 0| 0| 
#  3333333 | c| 3| 0| 1| 0| 1| 0| 0| 0| 0| 0| 0| 
#  4444444 | d| 4| 0| 0| 1| 0| 0| 0| 0| 0| 0| 0| 
#  5555555 | e| 5| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 
#  ※4〜13番目のフラグは、"1"が設定あり、"0"が設定なしを示す 
#   
#  分かり難い文章で申し訳ございませんが、よろしくお願い致します。  
# 
# 

抽出したい情報(L) :-
        抽出対象テーブル1(_カラム1A,_カラム1B,_カラム1C),
        抽出したい情報の一(_カラム1A,['01','02','03','04','05','06','07','08','09','10'],L1),
        append([_カラム1A,_カラム1B,_カラム1C],L1,L).

抽出したい情報の一(_,[],[]).
抽出したい情報の一(_カラム2A,[_カラム2D|R1],[1|R2]) :-
        抽出対象テーブル2(_カラム2A,_カラム2D),!.
        抽出したい情報の一(_1,R1,R2).
抽出したい情報の一(_カラム2A,[_|R1],[0|R2]) :-
        抽出したい情報の一(_カラム2A,R1,R2).