0
我有低於Oracle
查詢:Oracle查詢
SELECT
*
FROM
WA_GA_TBL_ACTIVITY A,
WA_GA_TBL_USERS U
WHERE
A.USERID_FK = U.USERID AND
(A.GROUPID_FK = 'GR0001' OR U.GROUPID_FK = 'GR0001') AND
A.USERID_FK != 'US0007' AND
(A.ACTIVITYID) NOT IN(SELECT ACTIVITYID_FK FROM WA_GA_TBL_ACCESSACTIVITY
WHERE USERID_FK = 'US0007'
第一個邏輯WA_GA_TBL_ACTIVITY
當用戶ID = US0007
檢查! 現在我想在NOT IN
用戶詳細信息:
NOT IN(SELECT ACTIVITYID_FK FROM WA_GA_TBL_ACCESSACTIVITY
WHERE USERID_FK = 'US0007'
當userid_fk = US0007
我想是這樣的:
SELECT
*
FROM
WA_GA_TBL_ACTIVITY A,
WA_GA_TBL_USERS U
WHERE
A.USERID_FK = U.USERID AND
(A.GROUPID_FK = 'GR0001' OR U.GROUPID_FK = 'GR0001') AND
A.USERID_FK != 'US0007' AND
(A.ACTIVITYID) NOT IN(SELECT S.USERID, S.DATEADDED, W.ACTIVITYID_FK FROM WA_GA_TBL_USERS S, WA_GA_TBL_ACCESSACTIVITY
W
WHERE S.USERID = W.USERID_FK AND W.USERID_FK = 'US0007')
遇到錯誤:
ORA-00913: too many values
樣品數據
表WA_GA_TBL_ACTIVITY
ACTIVITYID | ACTIVITYNAME | USERID_FK | ACTIVITYDATE | GROUPID_FK
001 | add new user | US0001 | 4/6/2017 | GR0001
表WA_GA_TBL_USERS
USERID | USERNAME | DATEADDED
US0001 | testuser1| 4/6/2017
US0007 | testuser2| 4/6/2017
表WA_GA_TBL_ACCESSACTIVITY
ACTIVITYID_FK | USERID_FK
有沒有辦法做到這一點?
'太多值'錯誤是由於您正在使用'NOT IN'與返回多個列的子查詢造成的。至於你實際想要做什麼,那是另一回事。 –
有沒有可能做查詢?也許查詢功能?因爲我需要從NOT IN查詢中獲取用戶的詳細信息 –
您能向我們展示樣本數據嗎?我害怕沒有,我只會在這裏猜測。 –