【问题标题】:Oracle DB query - joining two tablesOracle DB 查询 - 连接两个表
【发布时间】:2014-11-17 12:02:08
【问题描述】:

我正在尝试编写一个 oracle 数据库查询

表 1 包含

ID      Name   Action IP Address
11345   James  Copy   10.1.1.1
11345   James  Create 10.1.1.1
34512   Alex   Delete 10.1.1.2

表 2 包含

ID     UserID  Name   IP Address
11345  jusb    James  10.1.1.1
34512  awaters Alex   10.1.1.2

期望的输出

ID      UserID  Name   Action   IP Address
11345   jusb    James  Copy     10.1.1.1
11345   jusb    James  Create   10.1.1.1
34512   awaters Alex   Delete   10.1.1.2

ID 在第二个表中是唯一的,但在第一个表中重复。我基本上想将 UserID 字段添加到表 1 中的每个条目中。

这是我目前尝试过的

select t1.ID, t1.Name, t1.Action, t2.UserID, t1.IPAddress from Table1 t1 
left outer join Table2 t2 on t1.ID =t2.ID

提前致谢。

【问题讨论】:

  • 你能展示一下你到目前为止所做的尝试吗?
  • 更新了我到目前为止所尝试的内容。
  • 您尝试的输出有什么问题?
  • 谢谢。您使用该查询得到什么输出?假设您的表名和列名正确,则查询看起来是正确的。
  • @Bacs 出于某种原因,我得到了第一行和第二行。该查询似乎跳过了中间条目,因为它已在表 2 中标识

标签: database oracle join


【解决方案1】:

1- 在这种情况下最好使用内连接,因为表 1 中的每条记录在表 2 中都有一个 id。 2- 在左外连接的情况下,您还可以获得表 1 的结果,其中包含表 2 中不存在的记录。

最终查询是这样的:

select t1.ID, t2.UserID, t1.Name, t1.Action, t1.IPAddress from Table1 t1 
inner join Table2 t2 on t1.ID =t2.ID

【讨论】:

  • 我尝试了内部连接,但它似乎再次跳过了最终结果中的第二行。第一次遇到表 1 中的 ID 时,它会在表 2 中检查相同的 ID。我不知道为什么,但第二次遇到 ID 时它不显示。
  • 你能解释清楚一点,或者把你的问题和你想要的东西告诉我们吗?
猜你喜欢
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-07
  • 2016-05-27
  • 2019-07-01
  • 1970-01-01
相关资源
最近更新 更多