LEFT JOIN 僅第一行
在資料庫查詢領域,LEFT JOIN 操作是組合多個資料的強大工具。表。然而,有時您可能會遇到選擇性地僅從 LEFT JOIN 中檢索第一行的挑戰,從而導致混亂和看似不成功的結果。
其中一個場景涉及僅獲取與提要關聯的第一個藝術家。考慮以下簡化的資料庫結構:
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中文網其他相關文章!