CTE를 사용하여 계층 구조를 탐색하려고하는데 한 시나리오에서는 제대로 작동하지만 다른 시나리오에서는 제대로 작동하지 않습니다.아무 것도 발견되지 않으면 다음 결과 찾기?
주어진 쿼리.
BoM이 bom_id 열의 하위 boms로 드릴 다운하기 때문에 예상 한대로 쿼리가 작동합니다. 아이 BOM에가 발견되지 않는 경우
코드에서 (OpenERP에서), (더 bom_id) 아이 제품은 PRODUCT_ID에 따라 검색되지 않습니다 :
sids = bom_obj.search(cr, uid, [('bom_id','=',False),('product_id','=',bom.product_id.id)])
방법 I가 있는지 궁금하고 SQL에서 동일한 것을 수행하는 데 사용할 수 있습니다. CTE가 행을 반환하지 않으면 product_id 및 null bom_id로 확인하십시오. 나는 다른 재귀 회원에 대해서 생각해 보았지만 그것이 내가 찾고있는 것이라고는 생각하지 않는다.
제 질문에 대한 답은 분명하지 않지만, 어떤 제안이 있습니까? 여기
SQL 바이올린 예 데이터 : 그것은 결코 논리적으로 종료하기 때문에 http://sqlfiddle.com/#!3/b9052/1
그렇지 않습니다. 중복 하위 행을 리턴합니다. – ehcanadian
나는 어디에도 존재하지 않는다고 의심한다. (SELECT * FROM mrp_bom mb WHERE mb.bom_id = b.ID)'샘플 데이터를 만들 수 있습니까? [SQL 피들] (http://sqlfiddle.com/)도 좋을 것입니다. –
도움이 되나요? 전에 SQL Fiddle을 사용하지 않았습니다. http://sqlfiddle.com/#!3/b9052/1 (편집 된 URL) – ehcanadian