首頁 > 資料庫 > mysql教程 > 連接 MySQL 表時如何僅檢索最新行?

連接 MySQL 表時如何僅檢索最新行?

Susan Sarandon
發布: 2025-01-05 16:17:39
原創
797 人瀏覽過

How to Retrieve Only the Most Recent Row When Joining MySQL Tables?

連接MySQL 表以僅檢索最近的行

在資料管理系統中,連接表對於組合來自多個來源的資訊至關重要。處理歷史資料時,通常需要從連接表之一中擷取最新行。

考慮客戶資料庫的場景,其中客戶資料儲存在兩個表中:customer 和 customer_data。 customer 表包含基本的客戶訊息,而 customer_data 儲存對客戶設定檔的變更。要在表中顯示客戶的訊息,需要連接兩個表,但我們只需要 customer_data 中的最新行。

要達成此目的,您可以利用 MySQL 的 MAX() 函式和子查詢來尋找 customer_data 中最新行的 ID。該查詢看起來像這樣:

SELECT 
  c.*,
  cd.value
FROM 
  customer c
LEFT JOIN 
  customer_data cd ON c.customer_id = cd.customer_id
WHERE 
  cd.customer_id = (
    SELECT 
      MAX(customer_id) 
    FROM 
      customer_data
    WHERE 
      customer_id = c.customer_id
  )
登入後複製

此查詢首先從客戶表中檢索所有列(以 c. 為前綴)。然後,它與 customer_data 表(以 cd 為前綴)執行 LEFT JOIN,過濾 customer_data 中的行,僅包含每個客戶具有最大 customer_id 的行(由子查詢確定)。

此外,如在參考查詢中提到,您可以使用 CONCAT() 和 LIKE 來搜尋連接列中的特定值。在範例查詢中,CONCAT(title,' ',forename,' ',surname) 與字串 '%Smith%' 進行比較。這將傳回組合欄位中任意位置包含子字串「Smith」的所有客戶名稱。

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

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