0

使用しようとしているツールの用語がわからないことをあらかじめお詫びします。

startdate フィールド (とりわけ) を持つイベントのテーブルと、イベント ID への参照を持つ関連する繰り返しテーブルがあります。繰り返しテーブルには、イベントが繰り返される曜日と、それが毎月か毎週かどうかが格納されます。私が望んでいるのは、SQL クエリ内で繰り返しイベントを複製することです。そのため、最終結果には同じイベントが含まれます。開始日に注文した場所が異なるため、適切なページネーションのために結果を制限できます。

仮想テーブルの作成とテーブルのクローン作成に関するドキュメントを検討していますが、例を自分の状況に適用するのに問題があります。

アップデート:

これについて詳しく説明できることを願っています。

私が今持っているものの基本はSELECT * FROM 'events' WHERE 'start_date' >= TODAY() ORDER BY 'start_date LIMIT 20、今日からすべてのイベントを取得することですが、結果をページ付けしているため、一度に20個しか表示されません.

私がやりたいことは、関連付けられた繰り返しエントリを持つイベントを含む一時的な「仮想」テーブルを作成start_dateし、繰り返し情報に基づいて変更することです。したがって、毎週繰り返す場合、この 2 番目のテーブルには同じイベントが入力されますが、それぞれstart_dateが最後のイベントから 7 日後になります。次に、これら 2 つのテーブルを結合し、それらの結果を必要な 20 ページ区切りの制限に制限し、イベントが正しい場所にあり、ページ区切りを実行しやすいクエリ結果を得ることができます。

日付に追加するためにいくつかの情報をループする必要があると想像しているので、mySQL で関数を作成することは正しい方向に進んでいる可能性があることを理解しています。私はPHPで書くことによって拾うSQLのレベルしか知らないので、関数は私の範囲から少し外れていますが、少し読むだけで拾うのはそれほど難しくないようです. 偽のテーブルを作成し、ループでエントリを追加し、結合を使用して最初のクエリとマージする方法について、私はもっと混乱しています。

また、mySQL でこれを行うためのオーバーヘッドについても疑問に思い始めています。また、これを機能させることに成功した場合、これらの結果をキャッシュする方法についても考え始めています。

私を助けようとしてくれている人たちのおかげで、私はなぜかこの質問を言葉にするのに苦労しています.

4

0 に答える 0