JOIN을 통해 Correlated 서브 쿼리를 사용하는 것의 차이점을 알려주십시오. 그들은 같은 문제를 해결하기위한 것이 아닙니다. 한 가지 이상의 성과가 있습니까? SQL 서버를 사용하고 FOR XML PATH ('')를 사용하여 하위 쿼리에서 발생하는 여러 열을 선택하는 경향이 있습니다. 차이점을 설명 할 수있는 예제가 있으면 감사하겠습니다.Correlated Subquery and Joins
0
A
답변
1
"JOIN에 대해 상관 관계가있는 하위 쿼리를 사용하는 것의 차이점은 무엇입니까? 동일한 문제를 해결하기위한 것이 아닙니까?"
아니요.
상관 관계가있는 하위 쿼리를 사용하면 SEMIJOIN 또는 관계형 대수의 SEMIMINUS 호출에 대한 표현식을 얻을 수 있습니다. (내가 여기에 상관 하위 쿼리의 가장 일반적인 사용 말하고 있습니다.)
SELECT * FROM A1
WHERE attr in (SELECT attr FROM A2);
당신 A1에 표시에만 열을 제공합니다. 당신은 또한 당신에게 A1에 표시되지 않습니다 A2에서 추가 열을 줄 것
SELECT * FROM A1 NATURAL JOIN A2
가입 쓴 경우에 당신이 얻을 것이 무엇 달리.
그리고
SELECT * FROM A1
WHERE attr NOT IN (...)
도 상관 하위 쿼리를 포함하지만,이 시간은 심지어 가입과 같이 쓸 수없는 semiminus 호출이다.
마지막으로 상관 관계가있는 하위 쿼리가 SELECT 목록에도 나타날 수 있습니다.
SELECT a,b, (SELECT MIN(b) FROM T AS sub WHERE sub.a=main.a AND sub.b>main.b)
FROM T AS main
이런 경우 많은 쿼리가 JOIN으로 기록 될 수 없습니다.
2
평소와 마찬가지로, 코스 용 말입니다.
그러나 JOIN을 사용하여 작업 할 수 있으면 SQL Server의 집합 기반 작업을 사용하여 두 개의 데이터 스트림을 함께 일치시켜야하므로 느슨한 규칙이 있습니다.
그러나 관련 하위 쿼리는 특정 문제를 해결할 수있는 유일한 방법이지만 각 행에 하나씩 루프와 비슷한 동작이 발생하므로 속도가 느려지고 성능이 떨어집니다.
관련 문제
- 1. Oracle : Subquery and Where를 선택하십시오.
- 2. ORACLE UPDATE CORRELATED QUERY
- 3. SubQuery related
- 4. 긴 CORRELATED 하위 쿼리를 반복하지 않으려면 어떻게해야합니까?
- 5. 세 테이블이있는 MYSQL JOINS
- 6. CakePHP JOINS 쿼리
- 7. MS Access의 LEFT JOINS
- 8. NoSQL 데이터베이스의 JOINS
- 9. Doctrine ORM JOINS
- 10. Doctrine multiple joins
- 11. select * from subquery
- 12. MySql Join 및 subquery
- 13. SubQuery 열의 합
- 14. 코어 데이터의 SUBQUERY
- 15. subquery pull - 모든 행
- 16. MySQL - SubQuery - SQL 구문의 오류
- 17. JOINS 관련 SQL 관련 문제
- 18. linq to sql mulitiple joins
- 19. Subquery parent parents addedby 필드
- 20. MySql WHERE then select subquery
- 21. 이 SUBQUERY NSPredicate는 어떻게 작성합니까?
- 22. MySql Where-Subquery 구문 오류
- 23. SubQuery SQL과 LINQ의 상관 관계
- 24. Hibernate Criteria 컬렉션 프로퍼티 (subquery?)
- 25. Codeigniter AND AND AND
- 26. SQL 연결 테이블, INSERT INTO & JOINs
- 27. "JOINS"가 포함 된 Freebase 쿼리
- 28. 2 INNER JOINs MYSQL 업데이트가 응답하지 않습니다.
- 29. symfony2, doctrine2 또는 sql을 가진 JOINS
- 30. Rails3 ActiveRecord와 custom SQL JOINS with default_scope
조인 및 상관 하위 쿼리의 실행 계획을 검토 했습니까? – Taryn
나는 단어 실행 계획을 들었다. 그러나 나는 그 용어를 정말로 모른다. 제발 친절하게 설명해 주시겠습니까? – damola
이 경우에 약간의 검색 기능을 사용하면 http://msdn.microsoft.com/en-us/library/ms178071(v=sql.105).aspx가 권한 영역 중 하나입니다 (Microsoft가 SQL을 작성한 이후 서버, 실행 계획) ... 기본적으로 쿼리를 실행할 때 쿼리가 무엇을하는지 알 수 있습니다. – jcolebrand