我有两个这样的表:
create table doi (
id number primary key not null,
-- Other columns omitted
);
create table doi_membership (
id number primary key not null,
doi_id number not null, --foreign key to doi.id
key_1 number not null,
key_2 number not null,
-- Other columns omitted
);
我有一组 key_1、key_2 对,我想看看是否有一个 doi 包含给定 key_1、key_2 对的完整集,仅此而已。我似乎想不出执行此操作所需的 SQL。如果有帮助,我正在使用 oracle 数据库。有任何想法吗?
更新:
我认为我没有很好地解释这一点,所以我将举一个例子。
从概念上讲,单个 DOI 包含 key_1、key_2 对的列表。我有自己的 key_1、key_2 对列表,我想看看是否存在一个 DOI,其对列表与我的对列表完全匹配。
因此,假设有一个 DOI 具有以下 key_1、key_2 对列表(这些行中的每一行都是与同一 doi 相关的单独 doi_membership 行):
1, 2
3, 4
5, 6
另一个 DOI 具有以下对列表:
1, 2
3, 4
5, 6
7, 8
我拥有的那组对是
1, 2
3, 4
5, 6
我想匹配给定的第一个 DOI,因为它的对集和我的对集完全匹配。第二个 DOI 不应匹配。
我希望这能解决问题。