2011-04-07 5 views
0

두 개의 MySQL 테이블이 있고 첫 번째 쿼리의 결과를 병합하여 둘째 열의 열로 표시되도록하는 방법이 있는지 알고 싶습니다. 질문. 다음은 예입니다MySQL - 첫 번째 쿼리 결과를 두 번째 쿼리의 열로 병합

표 1

FolderTable 

ID NAME PATH 
1 c: 
2 tmp  1 
3  test 1,2 

SELECT name FROM FolderTable WHERE id IN (1, 2, 3) 
Result: 
c: 
tmp 
test 

표 2

ImageTable 

ID NAME  FOLDER_ID 
1 hi.jpg  3 
2 blah.jpg  3 
3 overwlow.jpg 3 

SELECT name FROM ImageTable WHERE id = 2 
Result: 
NAME 
blah.jpg 

내가 원하는 :

Result: 
NAME  PATH 
blah.jpg c:\tmp\test 

는 어떻게의 출력을 병합 QUERTY 쓰기 않습니다 "\"로 구분 된 두 번째 쿼리의 PATH 열에 대한 첫 번째 쿼리? 이것이 가능한가? INNER에

답변

1
SELECT name, 
     SELECT GROUP_CONCAT(name ORDER BY ID SEPARATOR '\') 
     FROM FolderTable 
     WHERE id BETWEEN (SELECT MAX(ID) 
          FROM FolderTable 
          WHERE ID < ImageTable.FOLDER_ID 
          AND PATH IS NULL) 
        AND ImageTable.FOLDER_ID 
FROM ImageTable WHERE id = 2 
+0

를 원하는 경우

SELECT FolderTable.Name AS FolderName, ImageTable.Name AS ImageName FROM FolderTable INNER JOIN ImageTable ON ImageTable.FolderId = FolderTable.ID 

당신은 "\"와 함께 필드를 연결할 수 있습니다 가입. "3"을 ImageTable.folderId로 전환하면 거의 다 왔어. 그러나 "1, 2"를 FolderTable.path로 어떻게 전환합니까? – GuruMeditation

+0

'FOLDER_ID'을 보지 못했습니다 ... FolderTable의 폴더 경로가'ImageTable.FOLDER_ID'로 끝나고 가장 가까운 null'PATH'' ImageTable.FOLDER_ID'로 시작한다고 생각합니까? – manji

0

봐 당신이 멋진

관련 문제