MySQL 中的交叉/外部應用
雖然 MySQL 支援 ANSI SQL 功能的子集,但 CROSS APPLY 不是其中之一。要實現類似的功能,必須採用替代方法。
直接近似:連接中的相關子查詢
最接近的直接近似涉及與謂詞中的相關子查詢的連接:
SELECT ORD.ID ,ORD.NAME ,ORD.DATE ,ORD_HISTORY.VALUE FROM ORD INNER JOIN ORD_HISTORY ON ORD_HISTORY.<PRIMARY_KEY> = (SELECT ORD_HISTORY.<PRIMARY_KEY> FROM ORD_HISTORY WHERE ORD.ID = ORD_HISTORY.ID AND ORD.DATE <= ORD_HISTORY.DATE ORDER BY ORD_HISTORY.DATE DESC LIMIT 1 )
簡化替代方案:直接相關子查詢
如果您只需要目標表中的一個字段,您可以直接在SELECT 語句中使用相關子查詢:
SELECT ORD.ID ,ORD.NAME ,ORD.DATE ,(SELECT ORD_HISTORY.VALUE FROM ORD_HISTORY WHERE ORD.ID = ORD_HISTORY.ID AND ORD.DATE <= ORD_HISTORY.DATE ORDER BY ORD_HISTORY.DATE DESC LIMIT 1 ) AS VALUE FROM ORD
此方法可讓您擷取所需的內容無需加入即可取得值。
以上是如何實現MySQL中CROSS APPLY的功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!