このディレクトリの索引
http://pc11.2ch.net/test/read.cgi/db/1274791771/231
#  tbl1にnum1,num2,id1,id2,id3 
#  tbl2にid,name,ssというフィールドがあるとして 
#  SELECT name, num1, num2, id1, id2, id3, time FROM tbl1, tbl2 
#  WHERE num1 = 1 
#  AND id1 = ( SELECT id FROM tbl2 WHERE ss = "monga") 
#  上記のようなSQLを 
#  特定のフィールドが他の行と重複してたら抜かすというのはどうやればいいでしょうか? 
#  単にdistinctつけるだけだとどれかひとつでも重複していなかったら抽出されますよね。 
#  id1,id2,id3が他のレコードのid1,id2,id3と重複してたら 
#  検索結果に入れないみたいな感じにしたいのですが。 
#  MYSQLです。


'id1,id2,id3が他のレコードのid1,id2,id3と重複してたら検索結果に入れない'([_name,_num1,_num2,_id1,_id2,_id3]) :-
        findall([_name,_num1,_num2,_id1,_id2,_id3],(
                    tbl1(num1,_num2,_id1,_id2,_id3),
                    num1 = 1,
                    tbl2(id1,_name,monga)),
                L1),
        findsetof([_id1,_id2,_id3],member([_,_,_,_id1,_id2,_id3],L1),L2),
        findall([_id1,_id2,_id3],(
                    count((member([_id1,_id2,_id3],L2),1)),
                L2),
        member([_name,_num1,_num2,_id1,_id2,_id3],L1),
        member([_id1,_id2,_id3],L2).