한 행을 여러 행으로 분할하는 방법이 있습니까?SQLite "split"행을 여러 행으로 변환
패턴 :
patternID | sourceStationID | targetStationID
1|1|2
2|1|6
3|1|3
4|1|4
5|4|6
6|5|6
I
내 문제는 내가 patternID 가장자리와 sourceStationID 및 targetStationID 가장자리가 연결 식별자이다의 ID입니다 가장자리의 테이블을 가지고있다 허브 전송 테이블도 있습니다.
허브 :
hubID
4
5
하나의 허브를 통해 정확하게 스테이션 1 -> 6을 연결하는 데이터 패턴 ID에서 벗어나야합니다. 그래서 쿼리의 결과는 다음과 같아야합니다
4
5
나는 패턴 테이블 다시 허브 테이블과 패턴 테이블에 합류에 의해 그래서 난 얻을했다
:
patternID | sourceStationID | targetStationID | patternID | sourceStationID | targetStationID
4 | 1 | 4 | 5 | 4 | 6
할 수있는 I 두에이 행을 분할하는 방법 행?
편집 : 여기 내가 지금까지 사용하는 코드입니다 :
select t2a.patternID from
(
select * from `patterns`
join `hubs` on `targetStationID` = `hubID`
where `sourceStationID` = 1
) as t1a
join
(
select * from `patterns`
join `hubs` on `sourceStationID` = `hubID`
where `targetStationID` = 6
) as t2a
on t1a.hubID = t2a.hubID
union
select t1b.patternID from
(
select * from `patterns`
join `hubs` on `targetStationID` = `hubID`
where `sourceStationID` = 1
) as t1b
join
(
select * from `patterns`
join `hubs` on `sourceStationID` = `hubID`
where `targetStationID` = 6
) as t2b
on t1b.hubID = t2b.hubID;
그것은 일하고 있지만이 같은 두 번 눌러 사용하고 있습니다.
작동하지 않습니다 수 검색어를 게시하여 선택한 항목을 확인하면 제안 된 변경 사항을 제안 할 수 있습니다. –
당신이 찾고있는 것은 재귀 문장에 대한 WITH 절입니다. 가까운 예 : http://social.msdn.microsoft.com/Forums/sqlserver/en-US/cd37dd9f-17c5-4df5-b072-5a9e51d1798d/show-all-children-and-grandchildren-for-parent-hierarchically ? forum = transactsql – user2346536
결과가 4와 6 인 이유는 무엇입니까? 4, 5일까요? 당신이 패턴이라고 말 했잖아요. – Frazz