このディレクトリの索引

# 出典 :: SQL質疑応答スレ 10問目 #895 # MYSQLで動的ホームページを作っています。 # fileテーブルにそれぞれのページのデータを保存していて # accessテーブルにアクセスログを保存しています。 # # fileテーブルにはAIのページIDカラムがあり # accessテーブルにはアクセスされたページのIDカラムがあります # # ページ一覧ページで各ページのアクセス数を表示したいです。 # SELECT * FROM fileの結果と、SELECT count(*) FROM access WHERE id='アクセスされてページのID'の結果を結合させるSQL文を教えてください。 # # いまはPHPで # $query="SELECT * FROM file ORDER BY id DESC LIMIT"; # $result=mysql_query($query); # # while ($row = mysql_fetch_array($result)) { # $query2="SELECT count(*) AS id FROM access WHERE id = {$row['id']}"; # $result2=mysql_query($query2); # $row2= mysql_fetch_array($result2); # } # # という書き方をしていますが、クエリを一回で済ませたいです。 # よろしくお願いします。 # # ページ一覧ページで各ページのアクセス数を表示する :- ページのアクセス数降順ならび(_ページのアクセス数降順ならび), '見出し行表示後、IDごとの度数を行表示する'(_ページのアクセス数降順ならび). '見出し行表示後、IDごとの度数を行表示する'(_ページのアクセス数降順ならび) :- '見出し行表示後、', 'IDごとの度数を行表示する'(_ページのアクセス数降順ならび). 'IDごとの度数を行表示する'(_ページのアクセス数降順ならび) :- forall('IDごとの度数を'(_ページのアクセス数降順ならび,_ID,_page,_度数),行表示する(_ID,_page,_度数)). ページのアクセス数降順ならび(_ページのアクセス数降順ならび) :- setof([_ID,_page],fileテーブル(_ID,_page)),_ページのアクセス数昇順ならび), reverse(_ページのアクセス数昇順ならび,,_ページのアクセス数降順ならび). '見出し表示後、' :- write(' ID,ページ名,アクセス数\n'). 'IDごとの度数を'(_ページのアクセス数順ならび,_ID,_page,_度数) :- select([_ID,_page],_ページのアクセス数順ならび,_), 度数(accessテーブル(_ID,_log),_度数). 度数(_目標,_度数) :- findall(1,_目標,L), length(L,_度数). 行表示する(_ID,_page,_度数) :- writef(' %w,%w, %w\n',[_ID,_page,_度数]).