首頁 >資料庫 >mysql教程 >如何在 SQL 子查詢中檢索最大值和關聯列?

如何在 SQL 子查詢中檢索最大值和關聯列?

Barbara Streisand
Barbara Streisand原創
2024-12-29 12:51:15468瀏覽

How to Retrieve Maximum Value and Associated Columns in SQL Subqueries?

SQL 中的最大值子查詢

在此查詢中,您尋求根據另一列的最大值檢索列的對應值。雖然您的原始方法使用 GROUP BY 語句,但它只能可靠地取得最大視訊 ID,而不是其他欄位中的相關資料。

要解決此問題,請考慮使用子查詢來識別每個類別的不同最大視訊 ID 。以下修改後的查詢遵循此方法:

SELECT
    *
FROM
    videos
WHERE
    video_id IN
    (
        SELECT
            DISTINCT
            MAX(video_id)
        FROM
            videos
        GROUP BY
            video_category
    ) 
ORDER BY
    video_category ASC

在此查詢中,採用子查詢來隔離最大視訊 ID 集。然後使用該集對錶進行過濾,以檢索相應最大視訊 ID 的所有列。透過利用 IN 運算子並連接結果,此查詢可以有效地取得所需的值。

或者,您可以使用聯接操作來獲得相同的結果,如下所示:

SELECT
   s.video_id
   ,s.video_category
   ,s.video_url
   ,s.video_date
   ,s.video_title
   ,s.short_description
FROM videos s
   JOIN (SELECT MAX(video_id) AS id FROM videos GROUP BY video_category) max
      ON s.video_id = max.id

此方法利用聯接將最大視訊ID 行與視訊表中的相應行進行匹配,從而檢索每個最大視訊ID 的完整列集。這兩種解決方案都透過捕獲與每個類別中最大視訊 ID 相關的值來有效解決該問題。

以上是如何在 SQL 子查詢中檢索最大值和關聯列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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