재귀 쿼리를 여러 번 호출하는 쿼리를 작성해야합니다.재귀 쿼리를 하위 쿼리로 사용하는 방법?
나는 어떻게하는지 알 수 없었다. 나는 커서를 사용하여 런타임시 SQL 문을 준비한 다음 EXEC (mySQLstatement)를 사용하여 모든 커서 FETCH NEXT에서이를 실행하여이 작업을 수행 할 수 있다고 생각합니다.
어쨌든 이것은 좋은 접근 방법이 아닙니다.
이것은 문제가됩니다. 물론 간단합니다. 나는 자신을 표현하는 데 필요한 열만 남겨 둡니다. 고객 트리 (계층 구조)가 있으며 모든 고객에 대해 정의 된 연락처가 있습니다.
CUSTOMERS 테이블에는 ID_CUSTOMER 필드와 ID_PARENT_CUSTOMER 필드가 포함되어 있습니다. CUSTOMER_CONTACTS 테이블에는 ID_CUSTOMER 필드와 ID_CONTACT 필드가 있습니다. 이 쿼리 (작동) 전 고객 (308)에 대한 모든 연락처 및 하위 고객의 모든 연락처를 얻을 수 있어요와
:
with [CTE] as (
select ID_CUSTOMER from CUSTOMERS c where c.ID_CUSTOMER = 308
union all
select c.ID_CUSTOMER from [CTE] p, CUSTOMERS c
where c.ID_PARENT_CUSTOMER = p.ID_CUSTOMER
)
select ID_CUSTOMER into #Customer308AndSubCustomers from [CTE]
select 308 as ParentCustomer, ID_CUSTOMER, ID_CONTACT, from CUSTOMER_CONTACTS
WHERE ID_CUSTOMER IN (select * from #Customer308AndSubCustomers)
drop table #Customer308AndSubCustomers
하지만 단일 쿼리에하고 싶은를 위의 구문을 재사용하여 308 대신 변수를 사용할 수 있도록 커서를 사용하는 것이 좋습니다.
그러나 더 나은 쿼리를 제안 할 수 있습니까?
예 예 예 예 예! 재귀 쿼리를 사용하는 첫 번째 날입니다. 아직 그 중 일부는 아닙니다. 고마워, 내 문제를 해결! – LaBracca