두 개의 외래 키를 저장하고 n : m 관계를 구현하는 테이블이 있습니다.정확한 행 수를 반환하는 쿼리
그 중 하나는 사람 (subject
)을 가리키며, 다른 하나는 특정 항목을 가리 킵니다.
이제 사람이 가질 수있는 항목의 양이 다른 테이블에 지정되어 있고 사람이 가질 수있는 항목 수와 같은 행 수를 반환하는 쿼리가 필요합니다.
나머지 레코드는 NULL
값으로 채워질 수 있습니다.
응용 프로그램 측면에서이 문제를 해결하는 것이 고통스러운 것으로 입증되었으므로 다른 접근 방식을 시도하기로 결정했습니다.
편집 : 예 나는 모든 주제 항목을 반환하는 쿼리/기능을 필요
CREATE TABLE subject_items
(
sub_item integer NOT NULL,
sal_subject integer NOT NULL,
CONSTRAINT pkey PRIMARY KEY (sub_item, sal_subject),
CONSTRAINT fk1 FOREIGN KEY (sal_subject)
REFERENCES subject (sub_id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT fk2 FOREIGN KEY (sub_item)
REFERENCES item (item_id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
(대상 5 개 항목이있을 수 있습니다) 하지만 주제에 할당 된 단지 3 항목이 있습니다.
반환 다소 같은 것 :
sub_item | sal_subject
2 | 1
3 | 1
4 | 1
NULL | 1
NULL | 1
내가 PostgreSQL은 8.3
상황을 이해할 수 없습니다. 몇 가지 테이블 구조와 원하는 쿼리 출력을 제공 할 수 있습니까? – Acn
질문 끝의 리턴 테이블은 'sal_subject'에 대한 모든 행에서 값'1 '을 유지해야하며 의미가 없으려면'NULL '이 아니어야합니다. –