我有兩個兩個表questionpool
和question
其中question
是多對一的question pool
。我創建了一個查詢使用子選擇查詢返回正確的隨機結果,但我需要返回question
表中的多個列。SQL Server:轉換子選擇查詢加入
查詢的目的是從「問題池」表中爲每個「QuizID」的'問題'表返回一個隨機測試。
SELECT QuestionPool.QuestionPoolID,
(
SELECT TOP (1) Question.QuestionPoolID
FROM Question
WHERE Question.GroupID = QuestionPool.QuestionPoolID
ORDER BY NEWID()
)
FROM QuestionPool
WHERE QuestionPool.QuizID = '5'
'xxx APPLY'的大粉絲,但它使您的查詢更便攜。 –
@ ta.speot.is如果可移植性是項目最重要的關注點,那麼最好找到一種更便攜的替代方法。但是,挖掘數據庫潛力是最實用的方法,特別是如果它比便攜式的更快,例如HTTP:// explainextended。com/2009/07/16/inner-join-vs-cross-apply /畢竟,你爲此付出了代價,不妨使用與你購買的產品相關的產品特性,並使你的工作效率更高 –