|
1
1
尝试使用联接:
|
|
|
2
3
你的要求不明确,我会解释原因。 让我们定义学生表
带WHERE子句的查询:
将只返回两行,因为它可以重写为:
WHERE是一个筛选子句,它只说明现有行是否满足给定条件(对于FROM子句创建的每一行)。 假设我们有一个子查询,它返回任意数量的非独特的名字。 如果sq包含使用inner join的“mike”、“ben”、“mike”,则可以毫无问题地得到这3行
结果将是:
注:数据不是按sq返回的名称顺序排序的。如果需要,sq应返回一些排序编号,例如:
在这种情况下,查询应该是:
结果:
现在,让我们看看如果子查询返回
你最终会
更糟糕的是,如果你有类似的东西:
结果是:
这是一个复杂的情况,您必须精确地阐明什么是需求。 如果您只需要一个同名的学生,那么对于sq中的每一行,您可以使用类似于SQL 2005+):
它将返回(对于sq值john、bill、john)
注意,数字(1)、(2)、(3)显示为ORD的值,尽管它们不是通过查询返回的。 |
|
3
2
如果可以拆分调用代码中的WHERE子句,则可以执行 UNION ALL 在每一个从句上。
|
|
|
4
0
仅仅因为你有一个标准在那里两次并不意味着它将返回每个标准1个结果。SQL引擎通常只使用唯一的条件-因此,从您的示例中,in子句中有两个条件:“rajesh”、“rohit” 为什么需要返回2个结果?你桌上有两个拉吉吗?他们都应该回来。你不需要再要求拉杰什两次。你的数据是什么样的?你想看什么退货? |
|
|
5
0
您好,我是查询,正如您在上面给出的,它提供了在in子句条件下匹配的所有数据。就像你的帖子一样 从人员中选择*。 如果有人进来( 'carson'、'kim'、'carson' ) 按名字排序 它给了我所有符合这个标准的记录 |