【发布时间】:2015-09-16 18:37:49
【问题描述】:
我需要在 SQL Developer 中创建一个查询。 有表1。表1数据如下: 例 1
ID_Number Time
12345 1
12345 2
12345 3
12345 4
12345 5
67890 1
67890 2
67890 3
etc.
这个 Table1 用这个 ID_Number 连接到 Table2 并且我需要的 Code_Number 在这个 Table2 中。
有一个但是。例如,在表 1 中有 ID_numbers 具有时间列,如本例中的 1-5。然后是不同的 ID_numbers 以及 1-5。然后有一些 ID_numbers 在下面的 Times 列中只有例如 2、4、5。 例 2
ID_Number Time
54321 2
54321 4
54321 5
我需要创建一个查询,从 Table2 中取出所有 Code_Numbers(通过 ID_number 连接到 Table1),但只有那些没有 1-5 中的所有 ID_numbers 的查询(Ex.1)。
有没有办法使这个查询成为可能?如果我知道它们有一定数量。例如 5,所以也许我可以用内部选择来计算它们,例如,如果少于 5,那么它会为我返回这些 Code_Numbers?
【问题讨论】:
-
table2中的ID_Number和Code_Number有什么关系?其中一个领域是独一无二的吗?也许两者兼而有之?还是只是两者的结合?
-
如果一个 Code_Number 可能在 table2 中出现两次,有两个不同的 ID_Numbers,一个 ID 有所有 5 次,但另一个有更少:你希望代码数字出现还是不行?
-
这应该可以通过几乎每个 DBMS 支持的相当基本的 SQL 来解决,但无论如何:当询问 SQL 问题时,您应该始终标记您的 DBMS,因为 SQL 只是使用的语言,但它的方言不同。
-
哦,对不起。如果你是这个意思,我正在使用 Oracle 吗?表 2 中的 ID_Number 和 Code_Number 基本上是相互关联的。 ID_Number 与 Code_Number 具有相同的行。 ID_Number 只是用于连接 ex 的值。表 1 与表 2。它们都是独一无二的。表 2 中只有一行 ID_Number 和 Code_Number 最好 Code_Number 只出现一次。基本上例如一个 ID_Number 在表 1 的 Times 列中少于 5,但它可能仍然有超过 1 行。因此,如果它只返回 Table2 中的一个 Code_Number,那就太好了。
-
我已根据我从您的 cmets 中了解到的内容编辑了我的答案。我知道,表名和列名只是示例,但最好使用更好的名称。例如,
ID_Number最好称为ID_Table2,因为它有助于理解表之间的关系。而time是一个奇怪的名称,用于不包含时间但包含数字的列。