【发布时间】:2012-09-05 17:53:31
【问题描述】:
我正在尝试对两个 liferay 表(users_ 和 expandovalue)执行右外连接以获取结果集。
当我对所有用户进行以下查询时,我得到了想要的结果。
SELECT USER_.FIRSTNAME
, USER_.LASTNAME
, USER_.EMAILADDRESS
, USER_.JOBTITLE
, expandovalue.data_
from expandovalue
right outer join
user_ on expandovalue.classpk = user_.userid
and expandovalue.columnid =35695;
当尝试对一组用户(用户组的一部分)执行相同操作时,它会出错。如下查询:
SELECT USER_.FIRSTNAME
, USER_.LASTNAME
, USER_.EMAILADDRESS
, USER_.JOBTITLE
, expandovalue.data_
from expandovalue
right outer join
user_ on expandovalue.classpk
in (select userid
from user_
where userid
in ( select userid
from users_usergroups
where usergroupid = 40073
) and status =0) = user_.userid in
(select userid
from user_
where userid
in ( select userid
from users_usergroups
where usergroupid = 40073
)
and status =0
) and expandovalue.columnid =35695
这是一个子查询,它给出了特定用户组中人员的userids。
(select userid
from user_
where userid in
( select userid
from users_usergroups
where usergroupid = 40073)
and status =0
)
我是不是走错了方向?请指教。
【问题讨论】:
-
1.您的查询缺少“AND”:...and status =0) = Smile AND user_.userid in... 2. 您使用的是哪个数据库?
-
在后端使用 Oracle 10g。究竟是一个和失踪。谢谢莱特
-
发布的一个好主意是包含错误消息。下次注意。欢迎来到堆栈溢出
标签: oracle subquery outer-join on-clause