高效組合多個 SELECT 語句
作為資料分析中的常見需求,將多個 SELECT 語句組合成單一最佳化查詢至關重要。當從遵循類似模式的多個表或資料庫中檢索資料時會遇到此挑戰,如所描述的範例中所示。
為了防止丟棄中間行並檢索單列結果,其中每個結果對應多行schema,必須修改查詢的語法。
解在於將個別 SELECT 語句括在括號內。這種技術使語法明確,並允許在子語句中應用限制操作,確保每個表僅返回一行。
使用 UNION ALL 運算子組合子語句建立期望的結果。以下是帶有必要括號的修改後的查詢:
(SELECT result FROM tbl1 LIMIT 1) UNION ALL (SELECT result FROM tbl2 LIMIT 1)
UNION ALL 運算子組合子語句的結果而不刪除重複項,建立單列結果,其行數與架構數相同。
此技術遵循 MySQL 文件中針對 UNION 運算子概述的指南,該指南指定 ORDER BY 和 LIMIT 子句可以應用於子表達式如果用括號括起來。否則,這些子句將應用於 UNION 的整體結果,而不是其各個輸入。
透過使用括號,查詢可確保從多個模式中高效檢索數據,從而允許在其中進行進一步分析或報告Excel 或其他工具。
以上是如何在單一查詢中有效地組合多個 SELECT 語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!