ホームページ > データベース > mysql チュートリアル > SQL を使用して、指定されたすべてのスポーツを含むオファーを選択するにはどうすればよいですか?

SQL を使用して、指定されたすべてのスポーツを含むオファーを選択するにはどうすればよいですか?

DDD
リリース: 2024-12-18 04:46:10
オリジナル
277 人が閲覧しました

How to Select Offers Containing All Specified Sports Using SQL?

結合セットにはすべての値が含まれている必要がありますが、さらに多くの値が含まれる可能性がある SQL

リレーショナル データベース管理システム (RDBMS) では、多くの場合、特定の条件に基づいてデータを取得する必要があります。 。この特定のシナリオでは、タスクは、指定された配列で指定されたすべてのスポーツを含む行をオファー テーブルから選択することですが、追加のスポーツが含まれる可能性もあります。

この結果を達成するには、次の SQL クエリを実行します。使用:

SELECT o.*
FROM   sports        s
JOIN   offers_sports os ON os.sport_id = s.id
JOIN   offers        o  ON os.offer_id = o.id
WHERE  s.name IN ('Bodyboarding', 'Surfing')
GROUP  BY o.id
HAVING count(*) = 2;
ログイン後にコピー

クエリの内訳:

  • JOIN ステートメントはスポーツ間の関係を確立します。 Offers_sports およびオファー テーブル。
  • WHERE 句は、指定されたスポーツ名に基づいてスポーツ テーブルをフィルタリングします。
  • GROUP BY ステートメントは、オファー テーブルの Offer_id 列によって結果をグループ化します。
  • HAVING 句は、各グループに 2 つの一意のスポーツ名が含まれているかどうかをチェックします。

要約すると、この SQL クエリは、指定された基準を満たすオファーを取得し、追加のスポーツを含むオファーを除外することなく、必要なスポーツがすべて存在することを確認します。

以上がSQL を使用して、指定されたすべてのスポーツを含むオファーを選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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