0

Как установить соединения на основе условий, я пытаюсь использовать if или case для этого, как я могу это достичь. MySQL ошибка Код: 1241. Операнд должен содержать 1 колонку (ы)Как добавить соединение на основе условий в 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

Попробуйте поставить IF перед SELECT, и использовать два запроса (по одному в каждом конкретном случае), вместо одного. – michaJlS

+0

синтаксическая ошибка, если я положил, если перед выбором, будет ли пример u – pitu

ответ

0

Вы можете разделить свое состояние в два JOINS ЛЕВЫЙ. Это должно работать, так как ваш @sUserId не может быть> и < = 0 в то же время. Я также изменил userClip на userFolder, потому что он выглядел так, как будто вы смешивали их (просьба дать обратную связь, если нет).

TWO 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