当前位置: 首页 > 面试题库 >

连接具有不同行数的两个表(在SQL Server中)

谷涵容
2023-03-14
问题内容

我有两个表: A (col1,col2,col3,col4)

B (col1,col2,col3,col4)

A 有4条记录(行),表 B 有6行。我想这样连接它们,例如将它们连接到 C 表中

CB.col1B.col2
,A.col3,A.col4,B.col3,B.col4)(表中记录中的值不同,只是col1和col2包含相同的值)

当我在A.col1 = B.col1和A.col2 = B.col2上加入他们时,我采用笛卡尔积:(

PS我想在 C中 有6行,其中B.col1,B.col2,B.col3,B.col4有6行,而A.col3,A.col4有4行,其他2空

请帮我..


问题答案:

您需要使用 FULL OUTER JOIN

Select a.Col1,
       a.Col2,
       a.Col3,
       a.Col4,
       b.Col3,
       b.Col4

From TableA a
Full Outer Join TableB b on a.Col1 = b.Col1
                         And a.Col2 = b.Col2

编辑:

“无效”不会帮助任何人。也许您可以提供更多详细信息,以了解为什么它不适合您。

您可以在问题中添加一些示例数据和实际的预期输出。

例如

Create Table #TableA
(
Col1 
...
)

Insert Into #TableA
Values (...)

您的问题越清楚,答案就会越好。如果人们不完全了解您的确切问题和所需的预期输出,那么我们应该如何为您提供完整而正确的答案。



 类似资料:
  • 问题内容: 我有两个要连接的表。 TABLE_A: TABLE_B: RESULT_TABLE: 我试图使用这样的东西: 但是,结果仅包括该列存在于TABLE_A中的行。 有没有办法连接TABLE_A和TABLE_B以产生RESULT_TABLE中显示的结果? 问题答案: 如果要获得所有结果,则需要一个 外部 联接,而不是一个 内部 联接。(内部仅返回匹配的行;外部返回所有行,其中匹配的行“缝合在

  • 我得到了一个表从SELECT查询1如下从SQL服务器: 我从SQL Server的SELECT query 2中获得了一个表,如下所示: 我想将这些SELECT查询加入到一个SELECT查询中,如下所示: 我试着这样: 但它不起作用,这不是我想要加入的实际表。 基本上,我想连接两个具有相同列名但它们之间没有公共值的SELECT查询。我想使用连接表中的SELECT查询。 提前谢谢你。

  • 我正在运行以下JOOQ查询: table和joinTable都有id作为主键名称,但最终获取实体类包含joinTable的id和table的其余列。如果我重新排序表,结果相似,我有表的ID和joinTable的其余列。

  • 问题内容: 我有两个表(表A和表B)。 它们具有不同的列数-假设表A具有更多列。 如何合并这两个表,并为表B没有的列获取空值? 问题答案: 为具有较少列的表添加额外的列作为null

  • 问题内容: 我有两个表,它们的列数是可变的。(我不知道有多少列或名称会是什么),例如表A和表B。 表A: 表B 询问: 当TableA和TableB都具有相同名称的列时,我无法区分两个不同的列。例如,两个表都有“名称”列,此查询将导致: 我正在寻找一种区分两个表的方法。最好使用预定义的列名称,例如。 我知道“ AS”关键字,但是问题是我不知道这些列名称将是什么。(我不知道TableA或TableB

  • 我有两个不同的服务器和,现在我有中的和中的。我试图加入这两个表在MySQL像这样。 但是我犯了一个错误。这在MYSQL中是可能的。