所以我想让这句话起作用:

SELECT
    *
FROM
    sakai.SAKAI_REALM AS sr
WHERE
    sr.REALM_KEY = (SELECT DISTINCT
            srrf.REALM_KEY
        FROM
            sakai.SAKAI_REALM_RL_FN AS srrf
        WHERE
            srrf.ROLE_KEY = 51);

但我得到的是MySql错误1242,子查询返回超过1行。我知道它将返回多行(它应该返回7),但是有没有办法让这个查询工作?我毫不怀疑我用错了语法。
我正在尝试寻找在子查询中有一个现有值的所有Sakay-Realm。

最佳答案

尝试将=更改为in,这基本上表示子查询返回的集合中的值:

SELECT
*
FROM
sakai.SAKAI_REALM AS sr
WHERE
sr.REALM_KEY in (SELECT DISTINCT
        srrf.REALM_KEY
    FROM
        sakai.SAKAI_REALM_RL_FN AS srrf
    WHERE
        srrf.ROLE_KEY = 51);

10-06 13:57