1
조인과 널에 대해 많은 의문점이 있지만이 특정 스키마와 일치하는 항목을 찾을 수 없습니다. 3 개의 예쁜 테이블이 있습니다.NULL로 결합하기
+---------+
| service |
+---------+
| id |
| name |
+---------+
+-----------+
| propnames |
+-----------+
| id |
| name |
| sort |
+-----------+
+----------+
| props |
+----------+
| sid |
| pid |
| value |
+----------+
내가 (propnames에) 속성을 추가하고 내 서비스를 조회, 내 성질 (소품)에 가입하고 속성이 아직 설정되지 않은 알 수 있도록하고 싶습니다
.
(service.id), (service.name), (property.id), (property.name), (props.value)
1, "AAA", 1, "property_a", "Service AAA has property_a value"
1, "AAA", 2, "property_b", "Service AAA has property_b value"
1, "AAA", 3, "property_c", NULL
2, "BBB", 1, "property_a", "Service BBB has property_a value"
2, "BBB", 2, "property_b", NULL
2, "BBB", 3, "property_c", NULL
:
이 경우 서비스
(id), (name)
1, "AAA"
2, "BBB"
이이
(service.id), (propname.id), (value)
1, 1, "Service AAA has property_a value"
1, 2, "Service AAA has property_b value"
2, 1, "Service BBB has property_a value"
그리고 궁극적으로 나의 질의는를 생성합니다 소품
입니다 propnames(id), (name), (sort)
1, "property_a", 1
2, "property_b", 2
3, "property_c", 3
입니다
이상적으로는 service.name의 ASC -then- property.sort
으로 분류 될 현재 불완전한 쿼리는 다음과 같습니다
SELECT s.id, s.name, p.id, p.name, props.value
FROM service.s
LEFT JOIN propnames p ON s.id = p.sid
LEFT JOIN props ON props.pid = p.id
ORDER BY s.name ASC, p.sort ASC