SQL join + group_concat이 일부 행을 반환하지 않음
데이터베이스에는 다음 테이블이 있습니다.
People
+-----------+------------+
| IdPeople | Name |
+-----------+------------+
| 1 | James |
| 2 | Chris |
+-----------+------------+
ref
+---------+-------------+------+
| People | Color | Code |
+---------+-------------+------+
| 1 | 2 | 1 |
| 1 | 1 | 2 |
| 1 | 6 | 3 |
| 2 | 1 | 1 |
| 2 | 6 | 4 |
| 2 | 4 | NULL |
| 2 | 5 | NULL |
+---------+-------------+------+
Colors
+--------+--------------------+
| IdCol | Color |
+--------+--------------------+
| 1 | Blue |
| 2 | Green |
| 3 | Yellow |
| 4 | Red |
| 5 | Black |
| 6 | White |
+--------+--------------------+
Codes
+--------+----------------+
| IdCode | Code |
+--------+----------------+
| 1 | C++ |
| 2 | JavaScript |
| 3 | Python |
| 4 | HTML |
+--------+----------------+
다음과 같은 것을 얻기 위해 모든 테이블에 참여하고 싶습니다.
+------------+---------------------------+------------------------------------+
| Name | Color | Code |
+------------+---------------------------+------------------------------------+
| Chris | Blue, White, Red, Black | C++, HTML |
| James | Green, Blue, White | C++, JavaScript, Python |
+------------+---------------------------+------------------------------------+
저는 이렇게 group_concat에 가입하려고 했습니다.
SELECT People.Name,
group_concat(Colors.Color separator ", ") AS "Color",
group_concat(Codes.Code separator ", ") AS "Code"
FROM People
INNER JOIN ref ON People.IdPeople=ref.People
INNER JOIN Colors ON ref.Color=Colors.IdCol
INNER JOIN Codes ON ref.Code=Codes.Code
GROUP BY Name;
하지만 group_concat은 빈 줄을 반환하지 않기 때문에 크리스 줄에 있는 Black과 White를 제외한 모든 것을 얻습니다.제가 이걸 어떻게 하는지 몰라서 그러는데, 누가 좀 도와주시겠어요?
~하듯이ref.code
null일 수 있습니다. 코드 테이블을 외부로 결합해야 합니다.LEFT OUTER JOIN Codes ON ...
.
전체 쿼리:
SELECT People.Name,
group_concat(Colors.Color separator ", ") AS "Color",
group_concat(Codes.Code separator ", ") AS "Code"
FROM People
INNER JOIN REF ON People.IdPeople=ref.People
INNER JOIN Colors ON ref.Color=Colors.IdCol
LEFT JOIN Codes ON ref.Code=Codes.Code
GROUP BY Name;
언급URL : https://stackoverflow.com/questions/64968378/sql-join-group-concat-not-returning-some-rows
'source' 카테고리의 다른 글
C,C++의 메모리 누수, 무료, 삭제를 잊었습니다. (0) | 2023.06.09 |
---|---|
Python에서 클래스 속성을 어떻게 문서화합니까? (0) | 2023.06.09 |
Windows 양식 레이블에서 텍스트를 선택할 수 있습니까? (0) | 2023.06.09 |
Firestore - 문서에서 특정 필드 가져오기 (0) | 2023.06.09 |
안드로이드의 시스템 버전을 확인하려면 어떻게 해야 합니까? (0) | 2023.06.09 |