으로 변환합니다. questionpool
과 question
이 있는데, question
은 question pool
의 다수 대 1입니다. 올바른 임의 결과를 반환하는 하위 선택 쿼리를 사용하여 쿼리를 만들었지 만 question
테이블에서 둘 이상의 열을 반환해야합니다.SQL Server : 하위 선택 쿼리를
쿼리의 의도는 'Question Pool'테이블의 각 'QuizID'에 대한 'question'테이블에서 무작위 테스트를 반환하는 것입니다.
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.co.kr/2009/07/16/inner-join-vs-cross-apply/결국 귀하는 비용을 지불하고 구입 한 제품과 관련된 제품 별 기능을 사용하여 생산성을 높일 수 있습니다 –