從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中文網其他相關文章!