MySQL JOIN と LIMIT 1 を使用して各カテゴリの最初の製品を取得するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-23 10:27:10
オリジナル
450 人が閲覧しました

How to Retrieve the First Product for Each Category Using MySQL JOIN and LIMIT 1?

結合されたテーブルで LIMIT 1 を使用した MySQL JOIN

この質問は、結合されたテーブルからの結果を 1 つに制限しながら 2 つのテーブルを結合することを中心に展開します。最初のテーブルの各一致のレコード。

この例では、カテゴリとカテゴリの 2 つのテーブルを考えます。 products では、各製品がカテゴリに属します。目的は、各カテゴリとそのカテゴリ内の最初の製品を取得することです。

これを達成するには、サブクエリを使用して、ID でソートされた各カテゴリ内の最初の製品の主キーを取得します。この主キーは外部クエリで使用され、対応するカテゴリと製品情報が取得されます。

クエリは次のように構成できます。

SELECT
  c.id,
  c.title,
  p.id AS product_id,
  p.title AS product_title
FROM categories AS c
JOIN products AS p ON
  p.id = (
    SELECT p1.id
    FROM products AS p1
    WHERE c.id = p1.category_id
    ORDER BY p1.id
    LIMIT 1
  )
ログイン後にコピー

このアプローチにより、単一の製品のみが取得されます。レコードはカテゴリごとに取得され、目的の結果に効果的に対処します。

以上がMySQL JOIN と LIMIT 1 を使用して各カテゴリの最初の製品を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート