SQL-返回满足ID的所有行,其中一行满足条件A,B或C

Cermain

我试图返回特定ID的所有行,其中与这些ID关联的任何行中都满足条件。请原谅我是SQL的新手...以下示例:


  • ID *行*#*


  • 12 * 1 * A *

  • 12 * 2 * B *
  • 12 * 3 * X *
  • 12 * 4 * Y *
  • 15 * 1 * A *
  • 15 * 2 * B *
  • 15 * 3 * C *

除了我的选择和条件=(X,Y或Z)以外,不确定代码是什么才能返回:


  • ID *行*#*


  • 12 * 1 * A * <-不包含X,Y或Z,但属于ID的一部分,

  • 12 * 2 * B * <-在该ID的另一行中有X
  • 12 * 3 * X *
  • 12 * 4 * Y *

我想拉所有的行记录,尽管它们不满足条件,只要它们是具有满足条件的行的ID的一部分。

谢谢您的帮助!

*编辑:包括尝试的代码*

SELECT ID
,LINE 
,#
    WHERE   ID,
IN (
SELECT ID
WHERE # IN ('X','Y','Z'))

结果:

ID  LINE  #
12   3    X
12   4    Y

我需要的:

ID  LINE  #
12   1    A
12   2    B
12   3    X
12   4    Y

我几乎觉得我需要使用IN('X','Y','Z')的条件创建ID和LINE的临时表,然后对所有LINE(而非X,Y, Z. 我认为这可能有效,但是我还没有学会如何使用临时表。我有点麻烦,因为我使用的是查询,在这里我已经简化了很多,在这里我选择了18个字段,这些字段连接到其他7个表中。我认为这只是使我对子查询的理解更加复杂,而不仅仅是子查询受此影响。

到目前为止,感谢所有人的帮助和答复!

希门

您可以IN为此使用子查询

Select *
From YourTable
where ID in (select ID from YourTable where # in ('X','Y','Z'))

请注意,12 * 4 * C *您的数据中没有任何内容,但我认为这只是结果中的O型,应该12 * 4 * Y *

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

返回分组,其中每组至少有一行满足 SQL Server 的条件

查找其中一列属于同一值并且另一列满足SQL Server 2008中的条件的所有行

如果满足条件,如何编写SQL以返回一行,否则返回另一行

当一行满足 SQL Anywhere 中的“where”条件时如何返回一组行

如果满足所有条件,则SQL获取行

满足条件后,SQL选择每个组的所有行

如何从一个唯一的ID满足不同行条件的SQL查询返回行?

在SQL(Impala)中,如何计算满足条件的行与下一行之间的时间增量?

Teradata SQL - 选择不同的返回重复行,其中一行具有空值

SQL-在满足另一条件的每一行下方选择满足条件的第一行

SQL - 返回满足所有条件的值

SQL中只查询满足三个条件的一行

如果两列满足特定条件,则 SQL 返回行

sql 2000 select id满足多个行条件的地方

SQL:如何获取其列满足特定条件的所有行

SQL Server-即使不满足条件,也会从LEFT表中播放所有行

标记先前在SQL中满足条件的行

SQL:如果满足条件,则将值从列复制到同一列中的另一行

SQL查询,包括所有行中一行的总和

如何根据 Oracle SQL 中的某些条件复制一行并拆分其中一列?

(SQL) 每个 ID,从第一行开始,返回值 N 大于前一个返回行的所有连续行

选择其中一个单元格值等于参数的行或ms sql中的所有行

如何删除其中一个值满足条件的所有行?apply()不起作用

Oracle SQL Developer-CASE语句,如果满足条件,则返回一个ID的多行

SQL Server:如果不满足条件,如何默认返回1行

满足条件和所有结果的情况-SQL Oracle

SQL Select(仅满足所有搜索条件的名称)

如何获取满足条件的记录的第一行的值为N,然后在Oracle SQL中进一步获取其值为Y的记录

如果ID在R中的面板数据中一次满足条件,则包括ID的所有行