カテゴリに対応するテキストレコードを見つけようとしています。
たとえば、「categorylinks」レコードのID 5を持っている場合、どのテキストがそのカテゴリに入るのかをどのように見つけることができますか?
編集:あなたがカテゴリーページのテキストを求めているのか、カテゴリー内のページのテキストを求めているのかはまだわかりませんので、ここに両方があります:
カテゴリページのテキスト:
select old_text from text, revision, page, categorylinks
where rev_text_id = old_id
and rev_id = page_latest
and page_namespace = 14
and page_title = cl_to
and cl_from = <cl_from entry in categorylinks table>
カテゴリ内のページのテキスト:
select old_text from text, revision, page, categorylinks
where rev_text_id = old_id
and rev_id = page_latest
and page_id = cl_from
and cl_to = <cl_to entry in categorylinks table>
詳細説明:
基本的に、categorylinksでは、cl_title
はカテゴリページのタイトルです。page_title
したがって、and page_namespace
= 14(カテゴリ名前空間)を使用してページテーブルでそれを調べることができます。正しいページを取得すると、その行のフィールドはリビジョンテーブルのpage_latest
と等しくなります。rev_id
これにより、カテゴリページの最新のリビジョンが提供されます。リビジョンテーブルには、テキストテーブルrev_text_id
のフィールドと同じフィールドがあります。テキストテーブルにはあなたのテキストがあります。old_id
old_text
ページのテキストが必要なときはいつでも、基本的にこのように機能します。ページデータベースレコードを検索します。次に:page.page_latest = revision.rev_id and revision.rev_text_id = text.old_id
。