我有一个存储两个外键的表,实现了一个: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