[英]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.