gpt4 book ai didi

mysql - 使用 LEFT JOIN 将数据从一个数据库迁移到另一个数据库

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

首先我要说的是,我对 MySQL 还比较陌生。我正在尝试将数据从一个数据库迁移到另一个数据库。我们将一个数据库称为 DB1,将另一个数据库称为 DB2。

DB2 具有以下表格。

患者: id、person_id 和 start_regimen_id

治疗方案: id,代码

就诊: id、患者 ID、方案 ID、下次预约日期

DB1 具有以下表格:

患者: id、医疗记录编号、current_regimen、start_regimen nextappointment

现在:

regimen_id 数据应插入到 current_regimen

start_regimen_id 数据应插入到 start_regimen

next_appointment_date 应插入到 nextappointment

这就是我现在拥有的:

                 SELECT
p.person_id AS medical_record_number,
r.code AS start_regimen,
??? AS current_regimen,
DATE_FORMAT(v.next_appointment_date, '%Y-%m-%d') AS
nextappointment,
FROM patient p
LEFT JOIN regimen r ON r.id = p.start_regimen_id
LEFT JOIN (
SELECT patient_id, MAX(next_appointment_date) as next_appointment_date
FROM visit
WHERE next_appointment_date IS NOT NULL
GROUP BY patient_id
) v ON v.patient_id = p.id

我仍然将 DB2 上的urischeme_id(访问)迁移到 DB1 上的current_regimen(患者)。我不知道如何使用两个LEFT JOIN从一张表的两个表中获取数据。

任何帮助将不胜感激,因为我真的陷入困境。

最佳答案

似乎我们希望将 regimen_id 包含在 visit 表中的 GROUP BY 中,然后将其与 id 匹配来自regimen表。考虑到外连接,patent 似乎可能没有任何关联的 regimen,因此我将包括 regimen_id 的 NULL 值的匹配.

    LEFT
JOIN ( SELECT vv.patient_id
, vv.regimen_id
, MAX(vv.next_appointment_date) AS next_appointment_date
FROM visit vv
WHERE vv.next_appointment_date IS NOT NULL
GROUP
BY vv.patient_id
, vv.regimen_id
) v
ON v.patient_id = p.id
AND v.regimen_id <=> r.id

但这只是猜测。如果没有规范(最好通过示例数据和预期输出来说明),我们只是猜测。

注意:

foo <=> bar

是一个NULL安全比较,相当于

的简写
( foo = bar OR ( foo IS NULL AND bar IS NULL ) )

关于mysql - 使用 LEFT JOIN 将数据从一个数据库迁移到另一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47698332/

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