当前位置: 首页 > 知识库问答 >
问题:

用2个不同的公共列连接3个表

蓝昊然
2023-03-14

我有三张桌子:

Table1: COL1 COL2
Table2: COL2 COL3 COL5
Table3: COL3 COL4

我想从表1中选择COL1,从表2中选择COL5,从表3中选择COL4

它喜欢两个联接表,但是当我使用以下查询时,它不起作用,COL5是空白的。

SELECT Table1.COL1, Table2.COL5, Table3.COL4 

FROM table3
INNER JOIN table2 ON table3.col3 = table2.col3
INNER JOIN table1 ON table1.col2 = table2.col2

请帮忙。

PS我复制了之前的一个类似示例,但输出不同。

共有1个答案

司空元凯
2023-03-14

表3和表2之间似乎没有关系数据

SELECT Table1.COL1, Table2.COL5, Table3.COL4

table3.col3, table2.col3 --if this comes up as null then Table2.COL5 would be null
table1.col2, table2.col2 --if this comes up as null then Table2.COL5 would also be null

FROM table3
LEFT OUTER JOIN table2 ON table3.col3 = table2.col3
LEFT OUTER JOIN table1 ON table1.col2 = table2.col2

对于内部联接,所有联接条件都必须为真才能返回结果。

考虑更改内部连接顺序或使用左外部连接。

 类似资料:
  • 有没有办法通过两个列表< code>join两个< code > Spark data frame 具有不同的列名? 我知道如果他们在列表中有相同的名字,我可以做以下事情: 或者,如果我知道不同的列名,我可以这样做: 由于我的方法需要2个列表的输入,这些列表指定哪些列将用于每个DF的,因此我想知道Scala Spark是否有办法做到这一点? 页(page的缩写)我在寻找类似python的东西< c

  • 我当前的代码: 但是我要一个java。lang.IllegalArgumentException。 我需要的是在用户表中显示一列。 类似于但是帐户实体没有只有User实体才有的getName()。 *更新 这就是错误所在 Java语言lang.IllegalArgumentException:在EntityManager中创建查询时发生异常:异常描述:语法错误分析查询[SELECT a Accou

  • 问题内容: 我有2张桌子。为了简化: 表1,用户: userId int,userName nvarchar(50) 表2消息: msgId int,msgFrom int,msgTo int … msg1和msg2都包含userId。现在,我想获取所有消息,但是我想要用户名而不是msgFrom。我知道该怎么办: 一切正常,花花公子。获取用户名而不是msgTo的方法相同。现在的问题是,如何在同一调

  • 我有一个Angular应用程序,有一个API,它连接并调用一个在服务器上建立的数据库,该数据库具有一个公共IP。 第二,你有什么想法为什么会发生这种情况吗? 谢谢。

  • 我使用jsPlumb允许用户构建图形。我允许用户拖动这些元素,所以我为每个endpoint使用锚集合,让jsPlumb在建立连接时从该集合中为我选择“最佳”锚。我遇到的问题是,我可能有多达十几个连接来自任何给定的endpoint,所以当许多人最终选择相同的“最佳”锚点时,这些连接将在视觉上分散注意力——在图中造成拥塞的外观。为了解决这个问题,我想告诉jsPlumb限制任何两个连接在endpoint

  • 我有一个列为col1-col10的表tablename。并非每一行都填充了col4,但每一行都填充了col1、col2、col3。我想在col4满足条件时获取所有{col1,col2,col3}元组,然后从tablename中获取与元组{col1,col2,col3}匹配的所有行。 我不确定是否应该使用内部联接、左联接或其他方式?(我认为内部连接和左连接都应该给我相同的结果)下面的查询给了我一个语