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