【问题标题】:How to fetch data from tables by using sql [closed]如何使用 sql 从表中获取数据 [关闭]
【发布时间】:2016-09-18 07:13:26
【问题描述】:

Table_1

Id | name         
1  | abc             
2  | xyz    

Table_2

Id | name
3  | sgha
5  | dshhb

我想从 表 1 中获取所有数据,并且我希望 表 2 中只有 Id 的数据..

预期输出

Id | name
1  | abc
2  | xyz
3  | null
5  | null

【问题讨论】:

  • 只使用连接
  • 你可以发布查询
  • 标签垃圾邮件!为什么要使用“Oracle”并使用任何其他数据库系统进行标记?
  • 你能用你的输出发布样本数据吗
  • 其实这个问题是在java开发者面试中问的......

标签: sql oracle10g


【解决方案1】:
SELECT
    COALESCE(Table_1.id, Table_2.id) AS id, Table_1.name
from Table_1
FULL OUTER JOIN Table2
ON Table_1.id = Table2.id

也许这会解决你的问题..

COALESCE函数在这里工作

请不要对问题投反对票。

【讨论】:

  • Yaa...所以通过使用合并只有一个列将同时显示表(t1.id 和 t2.id)的数据
【解决方案2】:

首先,您在选择 2 个同名表中的 2 个字段时会遇到问题,但是,您可以为相同字段名称 (Id) 的字段设置别名。

Select 
Id = Table_1.Id, 
Name = Table_1.Name,
Id2 = Table_2.Id

From Table_1
Inner Join Table_2 On Table_1.Id = Table_2.Id

【讨论】:

  • 如果你不想介意,你能解释一下内连接和等连接之间的区别
  • 如果 id.table1 与 id.table2 不匹配怎么办
  • 这不是一个正确的解决方案
  • 我想获取所有数据,即使 id 匹配与否
【解决方案3】:

就像这样的JOINS

SELECT T1.id, T1.name, T2.id 
FROM table1 T1 JOIN table2 T2 
ON --T1.ID=T2.ID 

如果ID相同,建立关系--`

如果您不想使用JOINS,您可以这样做:

SELECT id,name FROM table1
UNION
SELECT id,name FROM table2 --if you want the two columns

【讨论】:

  • 我不比较 table1.id=table2.id
  • Id 匹配或不仍应显示所有详细信息
  • 我在看表 2 id...数据也应该显示...不使用 Equilty opertor
  • 该查询也显示 table2 id,显示 table1 的所有数据和表 2 的 id,我不明白你的问题。
  • 这是用户想要的输出
猜你喜欢
  • 2014-07-28
  • 1970-01-01
  • 1970-01-01
  • 2013-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-30
  • 1970-01-01
相关资源
最近更新 更多