如何从select语句中选择结果的子集

Ank*_*kur 4 sql

我有一个存储RDF三元组的表:

三元组(triple_id,sub_id,pre_id,obj_id)

方法(我需要写)将接收与pre_id值对应的数字数组.我想选择所有sub_id值,这些值对于传入的数组中的所有pre_id都有相应的pre_id.

例如,如果我传入了一个pre_id值...让我们调用preId中传递的值,我会这样做:

从triples中选择sub_id,其中pre_id = preId;

但是,由于我有多个pre_id值,我想继续迭代pre_id值,并且只保留sub_id值对应于具有两者的"三元组"记录.

例如,图像有五条记录:

triples(1, 34,65,23)
triples(2, 31,35,28)
triples(3, 32,32,19)
triples(4, 12,65,28)
triples(5, 76,32,34)
Run Code Online (Sandbox Code Playgroud)

如果我传入一个pre_id值数组[65,32],那么我想选择第一,第三,第四和第五条记录.

我该怎么做?

sch*_*and 5

这可能不适用于每个数据库,但关键字in可以执行此操作:

select sub_id from triples where pre_id in (65, 32)
Run Code Online (Sandbox Code Playgroud)