有两个结构相同的数据库 在每个数据库中都有这两个表。
- 表'客户'
+----+-----------------+-----------------+
| id | name | document |
+----+-----------------+-----------------+
- 表'购买'
+----+-----------------+-----------------+
| id | id_client | product |
+----+-----------------+-----------------+
<小时/> 我想知道如何插入第三个数据库(db3),所有在db1和db2中相同的客户端,以及与它们相关的外键数量相同。
答案 0 :(得分:1)
您可以使用一组JOIN来选择
db1和db2中的客户端
db1中每个客户的购买数量
db2中具有相同购买次数的客户
然后,您只需使用INSERT语句插入这些选定的行,如下所示:
INSERT INTO db3.clients
SELECT c1.*
FROM db1.clients c1
INNER JOIN db2.clients c2
ON c1.id = c2.id
INNER JOIN
(
SELECT
id_client,
count(*) cnt_purchases
FROM db1.Purchases
GROUP BY id_client
) p1
ON c1.id = p1.id_client
INNER JOIN
(
SELECT
id_client,
count(*) cnt_purchases
FROM db2.Purchases
GROUP BY id_client
) p2
ON p1.id_client = p2.id_client AND p1.cnt_purchases = p2.cnt_purchases;