繁体   English   中英

如何合并2个表并将值插入第3个表

[英]How to combine 2 tables and insert values into a 3rd table

我有2个表格,其格式如下。

T1

ID   SUB_ID   NAME   NUM
123  ABC      TEST   5
456  XYZ      HELLO  10

T2

ID   SUB_ID   NAME   NUM  CAT  ACTY
123  ABC      TEST   5    sjq  h5h
456  XYZ      HELLO  10   hwl  888

我想看一下这两个表,并根据ID和SUB_ID进行匹配,并将它们连接在一起,这样我就可以从T1中获得所有列,而从T1中缺少的那些列则在T2中

这两个表都包含数千行,但在此示例中我进行了简化。

这是我尝试过的代码,但是我要返回很多行。

SELECT * 
FROM T1 YY
INNER JOIN T2 ZZ
WHERE YY.ID = ZZ.ID and YY.SUB_ID = ZZ.SUB_ID

任何有关如何执行此操作的帮助将不胜感激。 谢谢!!

我将在这里进行“猜测”(仅在何处提出索赔)

INSERT INTO T3
 (ID, SUB_ID, NAME, NUM, CAT, ACTY)
SELECT T1.ID, T1.SUB_ID, T1.NAME, T1.NUM,
      T2,CAT,  T2.ACTY
FROM T1
INNER JOIN T2
    ON T1.ID = T2.ID 
       AND T1.SUB_ID = T2.SUB_ID
WHERE (T1.ID = 123 AND T1.SUB_ID = 'ABC')
   OR (T1.ID = 456 AND T1.SUB_ID = 'XYZ')

如果T3在ID上具有标识,则可能必须更改查询以解决该问题。

关于我的评论,这似乎是相同的结果:

INSERT INTO T3
 (ID, SUB_ID, NAME, NUM, CAT, ACTY)
SELECT T2.ID, T2.SUB_ID, T2.NAME, T2.NUM, T2,CAT, T2.ACTY
FROM T2
WHERE (T1.ID = 123 AND T1.SUB_ID = 'ABC')
   OR (T1.ID = 456 AND T1.SUB_ID = 'XYZ')

您的代码(类似于下面的代码)是正确的,但是如果一个或其他表具有多个具有相同ID和SUB_ID的行,可能会让您感到惊讶。

SELECT * 
FROM T1 YY
INNER JOIN T2 ZZ
WHERE (YY.ID = ZZ.ID AND YY.SUB_ID = ZZ.SUB_ID)

下面的示例记录将返回4行,而不是2行,因为第一个表中的每一行都与第二个表中的2行匹配。

T1

ID   SUB_ID   NAME   NUM
123  ABC      TEST   5
123  ABC      TEST2  10

T2

ID   SUB_ID   NAME   NUM  CAT  ACTY
123  ABC      TEST   5    sjq  h5h
123  ABC      TEST2  10   hwl  888

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM