gpt4 book ai didi

mysql - 将每个 ID 的外键数量与另一个数据库进行比较

转载 作者:行者123 更新时间:2023-11-29 00:11:01 26 4
gpt4 key购买 nike

有两个结构相同的数据库。
在每个数据库中都有这两个表。

- 表“客户端”

+----+-----------------+-----------------+
| id | name | document |
+----+-----------------+-----------------+

- 表“购买”

+----+-----------------+-----------------+
| id | id_client | product |
+----+-----------------+-----------------+


我想知道如何插入第三个数据库 (db3),所有在 db1 和 db2 中相同的客户端,并且具有相同数量的相关外键。

逻辑上应该是这样的:
插入 db3.clients,来自 db1.clients 和 db2.clients 的相等客户行,其中 count(db1.Purchases.id_client) = count(db2.Purchases.id_client)

最佳答案

您可以使用一组 JOIN 来选择

  1. db1 和 db2 中的客户端

  2. db1 中每个客户的购买数量

  3. 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;

关于mysql - 将每个 ID 的外键数量与另一个数据库进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25048059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com