首頁 > 資料庫 > mysql教程 > 如何在 MySQL 中檢索所有類別及其最低/最高產品價格,即使某些類別沒有產品?

如何在 MySQL 中檢索所有類別及其最低/最高產品價格,即使某些類別沒有產品?

Linda Hamilton
發布: 2024-12-04 16:25:16
原創
677 人瀏覽過

How to Retrieve All Categories and Their Minimum/Maximum Product Prices in MySQL, Even When Some Categories Have No Products?

從MySQL 中具有不等行的兩個表中進行選擇

在具有兩個表(類別和產品)的在線在購物資料庫中,常見任務是檢索所有類別以及每個類別中的最低和最高產品價格。然而,簡單的查詢會遇到一個問題:沒有產品的類別被排除在結果之外。

要解決此挑戰,有必要使用外部連接而不是隱式連接。即使在另一表(產品)中沒有對應的行,外連接也允許檢索一個表(在本例中為類別)中的行。具體來說,這裡使用左連接,以便所有類別都包含在結果中。

此外,為了將沒有產品的類別的空值替換為 0,使用了 IFNULL() 函數。此函數採用第一個參數中提供的表達式的值,如果為 null,則傳回第二個參數中指定的值。

更新的查詢語法如下:

SELECT
    sc.*,
    IFNULL(MIN(s.price), 0) AS minp,
    IFNULL(MAX(s.price), 0) AS maxp
FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid = sc.id
GROUP BY sc.id
登入後複製

透過使用外連接和IFNULL() 函數,我們可以檢索所有類別,並確保沒有產品的類別用minp 和maxp 值為0表示。此查詢有效地處理了選擇的需要來自兩個表,即使一個表中並非所有行在另一個表中都有對應的條目。

以上是如何在 MySQL 中檢索所有類別及其最低/最高產品價格,即使某些類別沒有產品?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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