1

カテゴリに保存されている記事のデータベースがあります。私のホームページでは、各カテゴリから記事を取得したいと考えています (どちらでもかまいません)。ただし、一部の記事は複数のカテゴリにクロスポストされているため、2 回表示されます。

記事フィールド (reviewID、headline、reviewText) を含む tblReview というテーブルと、記事が含まれるカテゴリ (id、reviewID、categoryID) をサイトに通知する tblWebsiteContent というテーブル、最後に tblCategories (categoryID、categoryName) というテーブルがあります。 ) カテゴリを格納します。

私のクエリは基本的にこれらのテーブルを結合し、GROUP BY tblCategory.categoryID を使用します。'tblReview.reviewID' を GROUP BY ステートメントに追加しようとすると、22 (持っているカテゴリの数) ではなく、何百もの記事になってしまいます。

これにはサブクエリが必要だと感じていますが、テストの努力はうまくいきませんでした (どのクエリに結合/フィールド リスト/where 句などを含める必要があるかわかりません)。

ありがとう!

マット

4

3 に答える 3

0

を使ってみてくださいSELECT DISTINCT。(これはSELECT、記事 ID のみを取得している場合にのみ機能します。)

于 2009-09-21T15:02:24.863 に答える
0

DISTINCT レビュー ID を選択

于 2009-09-21T15:06:01.063 に答える
0
SELECT T.categoryName, tR.headline, tR.reviewText
FROM (
    SELECT tC.categoryName, MAX(tR1.reviewID) reviewID
    FROM tblReview tR1 join tblWebsiteContent tWC on tR1.reviewID = tWC.reviewID
                      join tblCategory tC on tC.categoryID = tWC.categoryID
    GROUP BY tC.categoryName) T JOIN
    tblReview.tR on tR.reviewID = T.reviewID

このクエリは、カテゴリごとに、そのカテゴリの Max reviewId に対応する記事の見出しを選択します (「どちらでも構いません」と答えました)。

于 2009-09-21T15:09:27.457 に答える