Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
匹配任何集合的MySQL都是子查询_Mysql_Sql - Fatal编程技术网

匹配任何集合的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);