我正在尝试创建一个复杂的 SQL 查询(至少对我而言),但真的不知道从哪里开始。
基本上,我有一个角色对象,每个角色都可以由几个部分组成。例如:
字符表:
id | character
--------------
1 | 你
2 | 是
3 | 有
character_parts表:
id | character_id | part_id
---------------------------
1 | 1 | 4
2 | 1 | 9
3 | 1 | 5
4 | 2 | 2
5 | 2 | 34
6 | 2 | 43
7 | 3 | 21
8 | 3 | 16
9 | 3 | 41
10 | 3 | 43
因此,我知道:
Character 1 is made of parts 4, 9, 5
Character 2 is made of parts 2, 34, 43
Character 3 is made of parts 21, 16, 41, 43
现在我想做的是选择以指定部分结尾的所有字符。
例如,如果我选择所有以“16、41、43”结尾的字符,我将得到字符 3。如果我选择所有以“43”结尾的字符,我将得到字符 3 和 4。
我假设我需要使用子查询构建一些查询,但不确定如何开始,或者是否可以完成。到目前为止,我只是选择了包含所需部件 ID 的所有内容,然后以编程方式进行比较,但这太慢了,因为我选择的方式超出了需要。
有什么建议吗?