관련된 행 중 하나를 통해 엔티티를 지정하여 모든 관련 행을 단일 엔티티로 가져 오려고합니다.SQL은 모든 조인 된 요소를 가져오고 조인 된 테이블을 통해 조인 엔티티를 지정합니다.
CREATE TABLE entity (
id INTEGER PRIMARY KEY
)
CREATE TABLE related (
id INTEGER PRIMARY KEY
key VARCHAR(32) UNIQUE NOT NULL
entity_id INTEGER FOREIGN KEY (`entity.id`)
)
내가 특정 entity
의 related
모든 행을 원하지만 내가 가입 할 방법 확실하지 않다, 난 항상 역 참조로 사용하고있는 키 만 관련 얻을.
SELECT
*
FROM
entity e,
related r
JOIN
related r1
WHERE
e.id = r.entity_id
AND r.key= 'lookup key'
AND r1.entity_id = e.id;
나는
entity.id related.id related.key related.entity_id
1 1 lookup key 1
1 2 other key 1
1 3 another key 1
원하는
INSERT INTO entity VALUES (1, 2);
INSERT INTO related VALUES (1, 'lookup key' 1),
(2, 'other key' 1),
(3, 'another key' 1),
(4, 'this key' 2),
(5, 'that key' 2),
(6, 'their key' 2);
실행하지만 난 항상
entity.id related.id related.key related.entity_id
1 1 lookup key 1
을 얻고 나는이
을하지 않으 그래서 경우
entity.id related.id related.key related.entity_id
1 1 lookup key 1
1 2 other key 1
1 3 another key 1
2 4 this key 2
2 5 that key 2
2 6 their key 2
나는 SQL이 100 % 정확하지 않다는 것을 알고있다.
질문을 수정하고 샘플 데이터와 원하는 결과를 제공하십시오. –
@GordonLinoff 질문을 더 완전하게 만들기 위해 변경했습니다. – shane