匹配任何集合的MySQL都是子查询
我正在为此查询寻找更好的解决方案:匹配任何集合的MySQL都是子查询,mysql,sql,Mysql,Sql,我正在为此查询寻找更好的解决方案: SELECT * FROM USER WHERE 1 IN (SELECT some_id...) OR 2 IN (SELECT some_id...) OR 3 IN (SELECT some_id...) 子查询可以返回多行 我尝试将其更改为:其中1,2,3在“选择某些id…”。。。但是它的抛出错误: 操作数应包含1列 我尝试了一些技巧,比如: 1,2,3=任意选择一些\u id…-但还是一样的问题 子查询的结果
SELECT * FROM USER
WHERE
1 IN (SELECT some_id...) OR
2 IN (SELECT some_id...) OR
3 IN (SELECT some_id...)
子查询可以返回多行
我尝试将其更改为:其中1,2,3在“选择某些id…”。。。但是它的抛出错误:
操作数应包含1列
我尝试了一些技巧,比如:
1,2,3=任意选择一些\u id…-但还是一样的问题
子查询的结果只是第二个表中的一些_id
是否有任何可能的解决方案来实现这一点而不需要多次或多次
谢谢你的帮助 这就是你想要做的吗 从用户选择*
如果1、2、3中的某些_id只想检查行是否存在,则可以使用EXISTS,例如:
我认为您正在寻找:
select u.*
from users u
where exists (select 1
from usercategories uc
where uc.userid = u.userid and
uc.categoryid in (1, 2, 3)
);
如果您确实想在中使用,可以执行以下操作:
select u.*
from users u
where u.userid in (select uc.userid
from usercategories uc
where uc.categorid in (1, 2, 3)
);
你试过这样的东西吗?无子查询
select user.* from user
join user_category on user.id = user_category.id_user
where user_category.category_id in (1,2,3);
查询是否选择了某个\u id。。。参考其他表格?如果是,是否有一个公共列可以加入它们?是的,从user\u category中选择category\u id,其中user.id=user\u category.user\u id并返回所有可用的category\u id。您可以发布整个查询的示例吗?我觉得还有其他一些设计决策可能会影响您的问题。@SeanGregory原始完整查询是:-查询可以包含3个以上,或者-如果为更多类别ID设置了筛选器。请编写一个示例,显示您拥有的表的示例数据,并提供一个示例,说明应选择哪些行作为结果,以及这是可行的——但只对某些_id中的一个值有效——子查询返回更多行——理想情况下,如果其中任何一个值相等,我需要获取行。就像任何1,2,3,4中的1,2,3-我不知道如何更好地描述它-/此查询将返回具有列some_id和这三个值中任何一个值的任何行。如果你需要一些不同的东西,你能在问题中提供一个例子吗?@Filip。更好的是,再问一个问题。这似乎回答了您提出的问题。
select user.* from user
join user_category on user.id = user_category.id_user
where user_category.category_id in (1,2,3);