所以我想让这句话起作用:
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);