すべてのデータを忠実に正規化したので、出力用に 3NF 行を 1 行に結合する際に問題が発生しました。これまではサーバー側のコーディングでこれを行ってきましたが、さまざまな理由から、別の行に関連するすべての行を選択し、それらをすべて MySQL で 1 つの行に結合する必要があります...
試して説明するには:
私は3つのテーブルを持っています。
- カテゴリー
- 記事
- カテゴリArticles_3NF
カテゴリには、 CategoryID + タイトル、説明などが含まれます。ArticleID + コンテンツを格納するテキスト フィールドで構成される、Articles テーブル内の任意の数の記事を含めることができます。CategoryArticlesテーブルは 2 つをリンクするために使用されるため、 CategoryID と ArticleID の両方が含まれています。
ここで、Category レコードを選択し、リンクしている CategoryArticles_3NF テーブルを介して Articles テーブルに結合すると、結果はそのカテゴリに含まれる記事ごとに個別の行になります。問題は、カテゴリごとに 1 つの行を出力し、その中のすべての記事のコンテンツを含むことです。
それがばかげた要求のように聞こえる場合、それはそうであるからです。問題を説明する良い方法として記事を使用しているだけです。私のデータは実際には多少異なります。
とにかく-これを達成するために私が見ることができる唯一の方法は、「GROUP_CONCAT」ステートメントを使用してコンテンツフィールドをグループ化することです-これの問題は、これが返すことができるデータの量に制限があることです.はるかに多くを処理できます。
誰でもこれを行う方法を教えてもらえますか?
ありがとう。