首頁 >資料庫 >mysql教程 >如何將 MySQL 表僅連接到相關表中的最新行?

如何將 MySQL 表僅連接到相關表中的最新行?

Patricia Arquette
Patricia Arquette原創
2025-01-01 11:18:11641瀏覽

How to Join a MySQL Table to Only the Most Recent Row in a Related Table?

MySQL:僅連接到最近的行

在這種情況下,您有表customer 和customer_data,其中customer_data 包含歷史記錄每個客戶的變化。您的目標是檢索客戶訊息,同時僅連接到 customer_data 中的最新行。

要實現此目的,請利用 WHERE 子句中的子查詢來標識 customer_data 中每個客戶的最大 ID。使用LEFT JOIN 語法將此子查詢連接到customer 表,如下所示:

SELECT c.*,
FROM customer AS c
LEFT JOIN customer_data AS d ON d.customer_id = c.customer_id AND d.ID = (
  SELECT MAX(ID)
  FROM customer_data
  WHERE customer_id = c.customer_id
)
WHERE name LIKE '%Smith%'
LIMIT 10, 20;

在此查詢中:

  • LEFT JOIN 確保customer 表中的所有行包含在結果中,即使它們在customer_data 中沒有對應的行。
  • WHERE 子句中的子查詢計算 customer_data 中每個客戶的最大 ID。
  • 然後將子查詢的結果與 customer_data 中的 ID 欄位進行比較,以僅選擇最近的行。

這種方法有效隔離每個客戶的最新條目並將它們連接到客戶表以進行進一步處理。

以上是如何將 MySQL 表僅連接到相關表中的最新行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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