저는 SQL 프로그래밍에 익숙하지 않고 약간의 문제가 있습니다. 나는 다음과 MySQL의 스크립트가 : 나는 두 개의 ID를, Id1에와 ID2를 포함하는 기본 테이블을 가지고, 기본적으로조건부 NULL 열이있는 MySQL SELECT
SELECT
MyPrimaryTable.PrimaryKey, Alias1.String AS Output1,
CASE
WHEN Id2 IS NOT NULL THEN Alias2.String
ELSE ""
END AS Output2
FROM MyPrimaryTable, MySecondaryTable AS Alias1, MySecondaryTable AS Alias2
WHERE
MyPrimaryTable.Id1 = Alias1.Id1
AND ((MyPrimaryTable.Id2 IS NULL) OR (MyPrimaryTable.Id2 = Alias2.Id2));
을, 그리고 보조 테이블의 문자열이 ID의 각각을 연결하기 위해 노력하고있어 및 SELECT 결과에이. 자열을 표시하십시오. 그러나 기본 테이블의 두 번째 ID는 NULL이 될 수 있습니다. 이 경우 원하는 출력은 첫 번째 문자열이고 두 번째 문자열은 공백 ("")입니다. 내가 작성한 스크립트는 모든 행이 똑같아 보이더라도 가능한 모든 문자열에 대해 새 행을 추가한다는 점을 제외하면이 작업을 수행합니다.
가능한 문자열예상 결과 FOO1, FOO2, Foo3 및 Foo4, 테이블에 두 개의 항목이 :
PK Output1 Output2
1 Foo1 Foo4
2 Foo2
내가 무엇을 얻을 :이 정리 어떻게
1 Foo1 Foo4
2 Foo2
2 Foo2
2 Foo2
및 예상대로 작동합니까? 감사.
편집 : 나는 이것을 VIEW에서 사용하고 싶기 때문에 DISTINCT를 사용하지 않기를 바랬다. 그리고 DISTINCT는 뷰를 갱신 할 수 없도록 만들 것이다. 다른 쪽 끝
GROUP BY MyPrimaryTable.PrimaryKey
로 그룹화
당신이 GROUP_CONCAT을 생각 해 봤나 WHERE와 테이블을하지 참여할 수 있습니다? http://dev.mysql.com/doc/refman/5.0/ko/group-by-functions.html#function_group-concat –