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

插入并入

越文康
2023-03-14
问题内容

我有个问题。有三个表:T1,T2,T_target。T1和T2表具有许多不同的列,但我只需要两者中的ID列。T_target表具有一个ID列,当然还有另一个:project_No。

T1和T2中也出现了一些ID,但是我不想在它们之间创建重复项,如果一个ID同时出现在两个表中,则只需将其插入到T_target中一次,但是如果它已经在T_target中,则允许行动两次。另一个条件是,每个新插入的ID在“
project_No”列中的值都必须为21。因此,例如:

T1:

ID
2548
2566
2569
2843
2888
...

T2:

ID
2557
2566
2569
2700
2913
2994
3018
5426
...

T_target:

ID     project_No
2976   1
3331   7
4049   7
5426   8
5915   3
6253   10
...

我想看的结果是:

T_target:

ID     project_No
2548   21
2557   21
2566   21
2569   21
2700   21
2843   21
2888   21
2913   21
2976   1
2994   21
2018   21
3331   7
4049   7
5426   8
5426   21
5915   3
6253   10
...

因此,我使用此代码进行了尝试(在这里使用“ NOT NULL”条件很重要,因为两个T_target列都是主键):

insert into T_target (ID, project_No)
  select (select ID
  from T1 where ID is not NULL
 union
  select ID
  from T2 where ID is not NULL), 21

select * from T_target

错误消息: “消息512,级别16,状态1,行2子查询返回的值大于1。当子查询遵循=,!=, <,<=,>,>
=或当子查询为用作表达式。该语句已终止。”

然后,我尝试使用VALUES语句而不是第一个SELECT和括号,但是错误是相同的。

谢谢!


问题答案:

这应该做你需要的

INSERT INTO T_target
            (ID,
             project_No)
SELECT ID,
       21
FROM   T1
WHERE  ID IS NOT NULL
UNION
SELECT ID,
       21
FROM   T2
WHERE  ID IS NOT NULL


 类似资料:
  • 你好,我正在创建一个游戏,它有分数,我需要使点被添加和更改setText. 我在转换时遇到了问题,因为我在字符串中获取文本值,对其求和会产生错误。 错误:不兼容的类型:int无法转换为String错误:不兼容的类型:String无法转换为int错误:二进制运算符的坏操作数类型'第一种类型:int第二种类型:TextView

  • 问题内容: 有几种将数据插入表中的方法: 有没有办法使用,但我不想在colA中插入例如colAA值,而是总是将其插入1。 感谢帮助 问题答案: 只需在列表中添加一个常量

  • df.write.format(“delta”).mode(“append”).save(“ ”) 目前,这个表上没有分区,这可能是一个可能的修复,但在沿着这条路线前进之前,我是否遗漏了一些关于如何并行地获得不冲突的插入的东西?

  • 问题内容: 我正在将数据插入MySQL数据库,以防万一如果插入失败,我需要给出一条适当的错误消息来指示。根据下面的代码,如果插入成功或失败,我将收到消息。 我要做的是仅在数据插入成功时才回显消息,如果失败则返回。我该如何修改我的代码? 问题答案:

  • 问题内容: 我知道MySQL中并发SELECT和INSERT存在一个问题。但是,我的问题是,如果我与MySQL建立两个连接并继续使用这两个连接来加载数据,MySQL是同时获取数据还是在加载另一个之前等待一个完成? 我想知道两种情况下MySQL的行为。就像当我尝试在打开单独的连接时尝试同时在同一张表或不同表中加载数据时一样。 问题答案: 如果要创建与数据库的新连接并从两个链接执行插入,那么从数据库的

  • 问题内容: 我正在使用Laravel 4,我需要在MySQL表中插入一些行,并且需要找回插入的ID。 对于单行,我可以使用,但是它不支持多行。如果我至少能像普通的MySQL一样检索第一行的ID,就足以找出其他的ID。 问题答案: 根据用户Xrymz的建议,返回第一个。 根据Schemaapi 接受数组 所以你必须能够 就是说,如果使用MySQL,则可以由此检索第一个ID并计算其余的ID。还有一个功