我在标题上有些困惑,但让我解释一下:
假设我有两个数据结构:Parent
和Child
。在我的(Scala)代码中,每个Parent
实例都有一个Child
列表。在数据库中,我有两个表,一个用于Parent
,另一个用于Child
。 Child
表中的每个条目都有一个指向其Parent
的值parentId
。
Parent
表:id int
Child
表:id int,parentId int(外键parent.id)
给定Child
ID列表,我想选择每个Parent
(可以没有,一个或多个),这些Parent
具有所有这些Child
。谁能帮我查询?
更新:
我的示例未涵盖我的用例 - 抱歉。我需要在Child
中添加另一个字段:让我们称之为interestingThing
。以下是表:
CREATE TABLE Parent (
id INT PRIMARY KEY
);
CREATE TABLE Child (
id INT PRIMARY KEY,
interestingThing INT,
parentId INT,
FOREIGN KEY (parentId) REFERENCES Parent (id)
);
我需要找到有与我的兴趣列表相匹配的孩子的父母。给定以下数据:
INSERT INTO Parent VALUES (1);
INSERT INTO Parent VALUES (2);
INSERT INTO Child VALUES (1, 42, 1);
INSERT INTO Child VALUES (2, 43, 1);
INSERT INTO Child VALUES (3, 44, 1);
INSERT INTO Child VALUES (4, 8, 2);
INSERT INTO Child VALUES (5, 9, 2);
INSERT INTO Child VALUES (6, 10, 2);
INSERT INTO Child VALUES (7, 8, 1);
我想要一个查询,使下列示例能够正常工作:
- 给定有趣的事物(42, 43),我想找到id为1的父级。
- 给定有趣的事物(43, 44),我想找到id为1的父级。
- 给定有趣的事物(8),我想找到id为1和id为2的父级。
- 给定有趣的事物(8,10),我想找到id为2的父级。