Sql 如何在不使用公共列的情况下连接两个表?

Sql 如何在不使用公共列的情况下连接两个表?,sql,oracle,Sql,Oracle,预期产量 Table 1 Table 2 Column1 Column2 Column3 Column4 Column5 Column3 ------- ------- ------- ------- ------- ------- A 1 a E 10 a

预期产量

Table 1                               Table 2

Column1    Column2    Column3         Column4    Column5    Column3
-------    -------    -------         -------    -------    -------
A          1          a               E          10         a
B          2          b               F          11         b
C          3          c               G          12         c
D          4          d               H          13         d


Table 3                               Table 4  

Column6    Column7    Column4         Column8    Column9    Column6
-------    -------    -------         -------    -------    -------
I          20         E               M          30         I
J          21         F               N          31         J
K          22         G               O          32         K
L          23         H               P          33         L
我如何获得输出以查看上述预期结果


这是我目前正在学习的Oracle SQL课程。虽然这些表有公共列,但问题要求不要使用公共列,而是使用不同的列来获得预期的输出,同时消除重复项。

鉴于发布的结构,此语句

Column1    Column9
-------    -------
C          31
C          32
C          33
。。。将产生预期的产出。显然,作为一个查询,它没有任何意义,因此它是一个恰当的问题答案


注意:如果OP使用适当的数据模型和现实数据编辑他们的问题,那么我当然会编辑我的答案,使其更合理

当我需要创建一个报告并将两个不同的表合并到一个表中时,这对我来说很有效。最简单且不需要联接的

选择表1.column1、表4.column9 从表1到表4
其中column1='c'

到目前为止,您尝试了什么。。?如果您使用的是Oracle,请不要标记mysql、sql server等。数据表的实现是什么?为什么第1栏你只想要C?我需要从第1栏和他们从第9栏买的书中选择一个特定的人。第1栏中的人可能有多次购买。您是如何手动得出答案的<代码>请描述一下你做了什么。我看不出第1列的值“C”如何追溯到第9列的值31、32和33,所以第1列:C=(人名)和第9列:31、32、33=(书名1、书名2、书名3),我知道它令人困惑,我甚至不知道从哪里开始,因为这个问题不允许我使用公共列Hanks来提供帮助,但我找到了答案,我也列出了公共列,它们是第3列(表1,表2),第4列(表2,表3),第6列(表3,表4),所以如果答案没有加入这些列,那是什么?
来自表1,表4
是交叉连接!
 select tableA.column1
        , tableD.column9
 from tableA
      cross join tableD
 where tableA.column1 = 'C'
 and tableD.column9 > 30