带有 SQL (mysql) 的复杂 select 语句

Complicated select statement with SQL (mysql)

我正在编写一个应用程序并搜索特定的 select 语句。我的 MYSQL 数据库中的情况如下:

我通过下表了解了这种情况:

我现在想要的是以下内容:我希望用户输入 subunit.id 并获取包含所有 entry.ids 的列表,其中还包含输入 subunit.id与所有其他 subunit.id 一样,这些 subunit.id 与找到的 entry.ids 相关。结果应如下所示:

(输入=子单元 5)

entry.id | subunit.id

条目 1 |亚基 5

条目 1 |亚基 26

条目 2 |亚基 2

条目 2 |亚基 5

...

仅获取与输入 subunit.id 相关的 entry.ids 很容易。但我未能将所有内容整合到一个 SQL 语句中。我在我的应用程序中解决了它,方法是创建两个不同的语句(第二个语句针对每个找到的 entry.id 执行)。有没有一个优雅的解决方案,将所有这些都放在一个 sql 语句中?

非常感谢!

更新 1

为了避免像这个问题的评论中的误解:实际上有一个数据集。但是为了让问题尽可能的理论化、笼统化和易于理解,我只将它简化为"ids"。

作为第一枪,我会尝试这样的事情。它可能不会立即起作用(抱歉,我还没有测试过),但它可能会让您了解一个可能的解决方案。我不会称之为优雅,而且我会非常小心,特别是如果表 and/or 预期输出很大。它可能不是最佳的,如果分成两个语句可能会更好。

SELECT e.id AS entryid, us2.subunit_id AS subunitid,
    FROM unit_subunits AS us1 
        JOIN unit AS u1 ON (us1.unit_id = u1.id) 
        JOIN entry AS e ON (u1.entry_id = e.id)
        JOIN unit AS u2 ON (e.id = u2.entry_id)
        JOIN unit_subunits AS us2 ON (u2.id = us1.unit_id)
    WHERE us1.subunit_id = 5;