2016-05-30 83 views
0

如何根据条件设置连接,我正尝试使用if或case来做到这一点,我该如何实现这一点。 mysql错误代码:1241.操作数应该包含1列(s)如何根据条件在mysql中添加连接

SET @sUserId = 15; 

SELECT userClip.userId 
FROM 
    (select if(@sUserId > 0 ,(select * from groups),(select * from otherGroups))folderId)abc 
INNER JOIN userClip 
on abc.folderId = userClip.folderId 
+0

尽量把如果选择的面前,用两个查询(每个情况下,一个),而不是单一的。 – michaJlS

+0

语法错误如果我把如果之前选择,你会举一个例子 – pitu

回答

0

您可以将您的条件分成两个左连接。这应该起作用,因为你的@sUserId不能同时>和< = 0。 我也将userClip更改为userFolder,因为它看起来像你混合起来(如果不是,请提供反馈)。

二LEFT_JOINS:

SELECT userFolder.userId 
FROM 
userFolder 
LEFT JOIN (SELECT * FROM groups) as abc 
on(@sUserId>0 and abc.folderId = userFolder.folderId) 
LEFT JOIN (SELECT * FROM otherGroups) as bcd 
on(@sUserId>=0 and bcd.folderId = userFolder.folderId) 
+0

会尝试让你知道 – pitu