このディレクトリの索引
http://toro.2ch.net/test/read.cgi/db/1316769778/816
#  table1 
#    id  | name 
#  ----------- 
#    0   | りんご 
#    1   | みかん 
#   
#  table2 
#   no  |  id  
#  ---------- 
#    0  | 0 
#    1  | 0 
#    2  | 1 
#    3  | 1 
#    4  | 1 
#   
#  この二つのテーブルから以下の結果を得るSQLの書き方を教えてください 
#    id  | name   |   num 
#  ------------------- 
#    0   | りんご  |   2 
#    1   | みかん |   3 
#   
#  select id, name, (select count(code) from table2 as t2, table1 as t1 where t1.id=t2.code) as num from table1; 
#  自分で考えた↑では2行ともnumが5になってしまいました 
# 
#  SELECT id, COUNT(id)
#  FROM table2
#  GROUP BY id
#  
#  の結果と table1 を結合 
#  

table1(0,りんご).
table1(1,みかん).

table2(0,0). 
table2(1,0).
table2(2,1).
table2(3,1).
table2(4,1).

'table2をidで集約したテーブルにtable1を結合する'(_id,_name,_度数) :-
        setof(_id,[_no,_id] ^ (
                    table2(_no,_id)),_idならび),
        member(_id,_idならび),
        count(table2(_,_id),_度数),
        table1(_id,_name).



%  findsetof/3
%  count/2