首頁 > 資料庫 > mysql教程 > 如何使用 SQL 選擇包含所有指定體育項目的商品?

如何使用 SQL 選擇包含所有指定體育項目的商品?

DDD
發布: 2024-12-18 04:46:10
原創
221 人瀏覽過

How to Select Offers Containing All Specified Sports Using SQL?

SQL where joined set 必須包含所有值,但可能包含更多值

在關聯式資料庫管理系統(RDBMS)中,經常需要根據特定條件檢索資料。在此特定場景中,任務是從 Offers 表中選擇包含給定數組中指定的所有體育項目的行,同時可能包含其他體育項目。

要實現此結果,可以使用以下 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 語句在 sports、offers_sports 和優惠表。
  • WHERE 子句根據指定的運動名稱過濾體育表。
  • GROUP BY 語句以優惠表中的 Offer_id 欄位將結果分組。
  • HAVING 子句檢查每個組是否恰好包含兩個唯一的運動名稱。

總而言之,此 SQL 查詢檢索符合指定標準的優惠,確保提供所有必需的運動項目,而不排除包含其他運動項目的優惠。

以上是如何使用 SQL 選擇包含所有指定體育項目的商品?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板