首頁  >  文章  >  資料庫  >  如何只檢索特定 Feed 的 LEFT JOIN 中的第一行?

如何只檢索特定 Feed 的 LEFT JOIN 中的第一行?

Barbara Streisand
Barbara Streisand原創
2024-11-11 00:06:02185瀏覽

How to Retrieve Only the First Row in a LEFT JOIN for a Specific Feed?

LEFT JOIN 僅第一行

在資料庫查詢領域,LEFT JOIN 操作是組合多個資料的強大工具。表。然而,有時您可能會遇到選擇性地僅從 LEFT JOIN 中檢索第一行的挑戰,從而導致混亂和看似不成功的結果。

其中一個場景涉及僅獲取與提要關聯的第一個藝術家。考慮以下簡化的資料庫結構:

  • 提要: id、標題、內容
  • 藝術家: Artist_id、artist_name

SELECT *
FROM feeds 
LEFT JOIN feeds_artists ON feeds.id = (
  SELECT
    feeds_artists.feed_id
  FROM feeds_artists
  WHERE
    feeds_artists.feed_id = feeds.id 
  LIMIT 1
)
WHERE
  feeds.id = '13815'

feeds_artists:
SELECT *
FROM feeds f
LEFT JOIN artists a ON a.artist_id = (
  SELECT
    artist_id
  FROM feeds_artists fa 
  WHERE
    fa.feed_id = f.id
  LIMIT 1
)
WHERE
  f.id = '13815'
rel_id, Artist_id, feed_id

要檢索指定的提要及其對應的第一位藝術家,直觀的方法可能涉及如下:但是,此查詢可能不會產生期望的結果。相反,請嘗試以下最佳化查詢:在此查詢中,技巧在於在 LEFT JOIN 語句中使用內嵌查詢。此內聯查詢選擇與每個提要關聯的最早藝術家的 Artist_id,利用藝術家 ID 隨著時間增加的假設。因此,產生的查詢檢索所需的行,展示了資料庫查詢的強大功能。

以上是如何只檢索特定 Feed 的 LEFT JOIN 中的第一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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