首頁 >資料庫 >mysql教程 >如何從兩個缺少通訊者的 MySQL 表中檢索資料?

如何從兩個缺少通訊者的 MySQL 表中檢索資料?

Linda Hamilton
Linda Hamilton原創
2024-12-04 03:36:11823瀏覽

How to Retrieve Data from Two MySQL Tables with Missing Correspondents?

從MySQL 中缺少對應項的兩個表中進行選擇

從MySQL 中的兩個表中檢索資料並處理其中並非所有行都在一個表中的情況另一個表中有對應的行,您可以使用外連接。這種方法不同於過時的隱含聯接方法,並提供了更大的靈活性。

考慮以下範例:

您有兩個表,類別(包含列id 和標題)和產品(包含列id) ,ownerid,標題和價格,其中ownerid引用類別表中的id)。

您的查詢旨在檢索所有類別及其最低和最高價格,並按類別 ID 分組。但是,目前查詢排除了沒有對應產品的類別。

要解決此問題,請使用 LEFT JOIN:

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

LEFT JOIN 確保包含類別表中的所有行,即使產品表中沒有相應的行。 IFNULL 函數將 0 分配給沒有產品的類別的 minp 和 maxp,從而防止顯示 NULL 值。

或者,您可能更願意為這些類別傳回 NULL 而不是 0,具體取決於您的特定要求。

以上是如何從兩個缺少通訊者的 MySQL 表中檢索資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn