Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用左联接将数据从一个数据库迁移到另一个数据库_Mysql - Fatal编程技术网

Mysql 使用左联接将数据从一个数据库迁移到另一个数据库

Mysql 使用左联接将数据从一个数据库迁移到另一个数据库,mysql,Mysql,让我先说我对MySQL比较陌生。我正在尝试将数据从一个数据库迁移到另一个数据库。让我们分别调用一个数据库DB1和另一个DB2 DB2有以下表格 患者:身份证、个人身份证和启动身份证 养生法:id,code 就诊:id、患者id、方案id、下次预约日期 DB1包含以下表格: 患者:身份证、病历号、当前用药方案、下一次开始用药方案 现在: 方案id数据应插入当前方案 start\u-schedule\u-id数据应插入到start\u-schedule 下一次约会日期应插入下一次约会 这就是我现在拥

让我先说我对MySQL比较陌生。我正在尝试将数据从一个数据库迁移到另一个数据库。让我们分别调用一个数据库DB1和另一个DB2

DB2有以下表格

患者:
身份证、个人身份证和启动身份证

养生法:
id,code

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

DB1包含以下表格:

患者:
身份证、病历号、当前用药方案、下一次开始用药方案

现在:

方案id数据应插入当前方案

start\u-schedule\u-id数据应插入到start\u-schedule

下一次约会日期应插入下一次约会

这就是我现在拥有的:

                 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上的方案id(visit)迁移到DB1上的当前方案(患者)。我不知道如何使用两个左联接从两个表中为一个表获取数据


任何帮助都将不胜感激,因为我真的被卡住了。

似乎我们希望通过访问
表中的
方案id
包括在
组中,然后将其与
方案
表中的
方案id
匹配。考虑到外部连接,似乎
患者
可能没有任何相关的
方案
,因此我将包括
方案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

谢谢现在这是有道理的。但是,这部分呢r、 代码为start\u方案???作为当前的_方案`既然我已经在方案中提到了开始方案的“代码”栏,那么当前的_方案呢?我还会使用r代码吗?方案id类似于1,方案代码类似于AF1A
foo <=> bar
( foo = bar OR ( foo IS NULL AND bar IS NULL ) )