我有3张表A,B,C
所有3个表的模式与下面提到的相同:
第一张桌子:
cpid ,name, place
第二张B表:
connectorid,dob
第3张C表:
ccpid cconnectorid
现在表A和B都有很多记录。 现在A和B中的一些记录具有相同的id。 现在我想将A和B中的记录合并到表C中。 合并逻辑如下
1)If records with cpid = connectorid ,insert into table c.
2)C Table ccpid is the foreignkey for A table cpid and cconnectorid is the foreignkey B table connectorid.
3)Using select query.
答案 0 :(得分:1)
您可以使用带有n个内连接的选择插入
insert into table_c
select a.cpid, b.connectorid, a.place
from table_b as b
inner join table_a as a on a.id = b.id
答案 1 :(得分:1)
您可以针对您的查询尝试此解决方案:
INSERT INTO `C`(`ccpid`, `cconnectorid`, `ccity`)
SELECT ta.`cpid`, ta.`cconnectorid`, tb.`place`
FROM `A` as ta
INNER JOIN `B` tb ON ta.`cpid` = tb.`cconnectorid`
答案 2 :(得分:1)
您只需要从两个表中连接数据?这是简单的JOIN功能。
SELECT *
FROM Table_A
INNER JOIN Table_B
ON Table_A.cpid =Table_B.connectorid;
您可以将此选择插入Table_C。
这是INNER JOIN,但我认为你应该看看JOIN,MyPlunkr SAMPLE是例子,你可以阅读更多关于其他JOIN的信息。
INNER JOIN :当BOTH中至少有一个匹配时返回所有行 表 LEFT JOIN :返回左表中的所有行,并匹配 右表中的行 RIGHT JOIN :返回右侧的所有行 表格,以及左表格中匹配的行 FULL JOIN :全部返回 当其中一个表中存在匹配时的行
答案 3 :(得分:0)
使用以下查询替换您的表名
INSERT INTO CTABLE(ccpid,cconnectorid,ccity)
(SELECT A.cpid ,B.connectorid, A.place FROM
TABLEA A INNER JOIN TABLEB B ON A.cpid = B.connectorid)