我为标题而苦苦挣扎,但让我解释一下:
假设我有两个数据结构:Parent
和Child
. 在我的(Scala)代码中,每个Parent
实例都有一个Child
's 列表。在数据库中,我有两张表,一张 forParent
和一张 for Child
。表中的每个条目Child
都有一个parentId
指向它的值Parent
。
表Parent
:id int
表Child
:id int,parentId int(外键 parent.id)
给定一个Child
ID 列表,我想选择Parent
具有所有这些孩子的每个(其中可以没有,一个或多个)。有人可以帮我查询吗?
更新:
我的示例没有涵盖我的用例 - 抱歉。我需要在中添加另一个字段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 的父母。