【问题标题】:how to fetch data from two tables using sql如何使用sql从两个表中获取数据
【发布时间】:2020-04-21 04:03:48
【问题描述】:

我需要从两个表中获取数据,一个有 10 列,另一个有 8 列。

两者都有一个包含相同数据的公共列。

如何编写查询以从如下两个表中获取数据?

1 aa cc vv bb bb bb   ss   ff ff ff ff > from table 1

1 aa ss ff re df dfsd sfsd ss          > from table 2

2 aa cc vv bb bb bb   ss   ff ff ff ff > from table 1

2 aa ss ff re df dfsd sfsd ss          > from table 2

像表 1 中的这个和表 2 中的一个,循环中

【问题讨论】:

  • 您发布了示例输入(虽然可能更简单)。期望的输出是什么?另外,您使用哪个数据库?是 Oracle 还是 DB2?
  • 请贴出两张表的结构。这对于提供可行的解决方案非常重要。
  • 请用CREATE TABLEINSERT INTO(带有一些示例数据)语句重写您的问题,并针对这两个表和此示例数据所需的结果。

标签: sql oracle db2


【解决方案1】:

您可以尝试“自然加入”这两个表,例如:

选择 * FROM table_1 自然连接 table_2 WHERE 必要时的任何条件;

这将为您提供两个表中的所有数据。

【讨论】:

  • 我需要一个接一个地获取数据..逐行
【解决方案2】:

您可以像下面这样使用 UNION ALL,对于不常见的列,您可以使用 null。

       WITH sub1
     AS (SELECT ROWNUM rw,
                d.*
         FROM   table1 d),
     sub2
     AS (SELECT ROWNUM rw,
                b.*
         FROM   table2 b),
sub3 as(SELECT common_col1,null not_common,rw from sub2
union all
select common_col1,not_common,rw from sub1)
select common_col1,not_common from sub3 order by rw

【讨论】:

    猜你喜欢
    • 2011-05-22
    • 1970-01-01
    • 2013-03-07
    • 2013-10-09
    • 1970-01-01
    • 2020-06-14
    • 2018-10-29
    • 2013-07-15
    • 2017-05-28
    相关资源
    最近更新 更多