输入来自不同mysql表的数据

输入来自不同mysql表的数据,mysql,sql,Mysql,Sql,我目前的查询是: INSERT INTO `ipdKayaChikitsaF`(`IPDNo`, `OPDNo`, `RegNo`, `PatientId`, `PDep`, `PWard`, `PBed`, `pSymptom`, `PDisease`, `PName`, `PMob`, `uid`, `PSex`, `PAge`, `PMStatus`, `PFname`, `PAddr`, `PDist`, `PState`, `OPDDate`, `dischargeStatus`, `

我目前的查询是:

INSERT INTO `ipdKayaChikitsaF`(`IPDNo`, `OPDNo`, `RegNo`, `PatientId`, `PDep`, `PWard`, `PBed`, `pSymptom`, `PDisease`, `PName`, `PMob`, `uid`, `PSex`, `PAge`, `PMStatus`, `PFname`, `PAddr`, `PDist`, `PState`, `OPDDate`, `dischargeStatus`, `admitOn`, `dischargeOn`, `CreatedOn`, `CreatedBy`) 
SELECT '1',OPDNo,RegNo,PatientId,PDep,'Kaya Chikitsa (Female)','1',pSymptom,'na',pname,PMob,uid,PSex, PAge,PMStatus,PFname,PAddr,PDist,PState,OPDDate,'0',OPDDate,'0000-00-00',OPDDate,'$user' 
from `opd` 
where OPDDate=STR_TO_DATE('$curDate','%Y-%m-%d 00:00:00') AND PDep='Kaya Chikitsa' AND PSex=0 GROUP BY `OPDNo`  
ORDER BY RAND() LIMIT $ipdKayaChikitsaF";
上述查询工作正常:

现在请勾选上述查询中提到的选择查询。这里我从表中选择一些值,其中一些是硬编码的。现在我想从另一个表中填充PBed值,其中应该有一个条件

我的床头柜有三列,像

Ward | Bed No | Status Kaya Chikitsa (Female) 1 0 Kaya Chikitsa (Female) 2 0 Kaya Chikitsa (Female) 3 1 Kaya Chikitsa (Male) 4 0 Kaya Chikitsa (Male) 5 1 Kaya Chikitsa (Male) 6 0
请检查上表her我希望PBed列按照上述条件从bed表中填充。

在select查询中使用join like。注意:表opd必须有一个pward的连接字段,以便该查询工作,我假设bed表名为bed_table

INSERT INTO `ipdKayaChikitsaF`(`IPDNo`, `OPDNo`, `RegNo`, `PatientId`, `PDep`, `PWard`, `PBed`, `pSymptom`, `PDisease`, `PName`, `PMob`, `uid`, `PSex`, `PAge`, `PMStatus`, `PFname`, `PAddr`, `PDist`, `PState`, `OPDDate`, `dischargeStatus`, `admitOn`, `dischargeOn`, `CreatedOn`, `CreatedBy`) 
SELECT '1',o.OPDNo,o.RegNo,o.PatientId,o.PDep,'Kaya Chikitsa (Female)','1',o.pSymptom,'na',o.pname,o.PMob,o.uid,o.PSex,o. PAge,o.PMStatus,o.PFname,o.PAddr,o.PDist,o.PState,o.OPDDate,'0',b.Ward, b.`Bed No`,o.OPDDate,'$user' 
from `opd` as o join bed_table b on b.Ward = o.pward
where OPDDate=STR_TO_DATE('$curDate','%Y-%m-%d 00:00:00') AND PDep='Kaya Chikitsa' AND PSex=0 GROUP BY `OPDNo`  
ORDER BY RAND() LIMIT $ipdKayaChikitsaF" and b.Ward = 'Kaya Chikitsa (Female)' and b.status = '0';
由于opd表中没有关系字段,所以可以使用简单的笛卡尔积来获得状态为0的ward Kaya Chikitsa(女性)的确切值。此外,在前面的查询中,忘记将select查询中的静态病房和床号值替换为,即“Kaya Chikitsa(女性)”,“1” b、 病房,b.
床位号
。因此,在结果中,床号的值仅为“1”

    INSERT INTO `ipdKayaChikitsaF`(`IPDNo`, `OPDNo`, `RegNo`, `PatientId`, `PDep`, `PWard`, `PBed`, `pSymptom`, `PDisease`, `PName`, `PMob`, `uid`, `PSex`, `PAge`, `PMStatus`, `PFname`, `PAddr`, `PDist`, `PState`, `OPDDate`, `dischargeStatus`, `admitOn`, `dischargeOn`, `CreatedOn`, `CreatedBy`) 
    SELECT '1',o.OPDNo,o.RegNo,o.PatientId,o.PDep,b.Ward,b.`Bed No`,o.pSymptom,'na',o.pname,o.PMob,o.uid,o.PSex,o. PAge,o.PMStatus,o.PFname,o.PAddr,o.PDist,o.PState,o.OPDDate,'0',o.OPDDate,'0000-00-00',o.OPDDate,'$user' 
    from `opd` as o, (select Ward, `bed no` form bed_table where Status = 0 and Ward = 'Kaya Chikitsa (Female)' ) as b
    where OPDDate=STR_TO_DATE('$curDate','%Y-%m-%d 00:00:00') AND PDep='Kaya Chikitsa' AND PSex=0 GROUP BY `OPDNo`  
    ORDER BY RAND() LIMIT $ipdKayaChikitsaF" and b.Ward = 'Kaya Chikitsa (Female)' and b.status = '0';

什么是门诊表?门诊部和“床头柜”之间有什么联系?当你回答这个问题时,你会得到你的答案…连接=连接这两个表的列,或者连接门诊部表和“床位表”门诊部表的表有一个部门字段和性别。这有助于找到我们的病房。例如,Dep名称为Kaya Chikitsa,性别为女性,而病房名称为Kaya Chikitsa(女性)。床位表按状态0显示病房名称和空置床位列表。因此,我只需要特定部门的床位,其状态为0。@VBoka我这样做,但得到的床位号值相同。在表IPDKayachikitsaf的coulmn PBed的每一行上,为opd表提供一些架构,并且床位表具有一些伪数据opd表没有pward列。我试过了,但是床只显示了1,然后你可以使用简单的笛卡尔积,我将通过更改上面的帖子来显示。谢谢更新。我使用了您的共享查询,但每一行的值都是相同的,例如:每一行的床号是2。查询就是这样做的。如果要为不同的门诊病人分配不同的床位号,除了使用外键维护门诊病人和床位号的关系外,别无选择。
    INSERT INTO `ipdKayaChikitsaF`(`IPDNo`, `OPDNo`, `RegNo`, `PatientId`, `PDep`, `PWard`, `PBed`, `pSymptom`, `PDisease`, `PName`, `PMob`, `uid`, `PSex`, `PAge`, `PMStatus`, `PFname`, `PAddr`, `PDist`, `PState`, `OPDDate`, `dischargeStatus`, `admitOn`, `dischargeOn`, `CreatedOn`, `CreatedBy`) 
    SELECT '1',o.OPDNo,o.RegNo,o.PatientId,o.PDep,b.Ward,b.`Bed No`,o.pSymptom,'na',o.pname,o.PMob,o.uid,o.PSex,o. PAge,o.PMStatus,o.PFname,o.PAddr,o.PDist,o.PState,o.OPDDate,'0',o.OPDDate,'0000-00-00',o.OPDDate,'$user' 
    from `opd` as o, (select Ward, `bed no` form bed_table where Status = 0 and Ward = 'Kaya Chikitsa (Female)' ) as b
    where OPDDate=STR_TO_DATE('$curDate','%Y-%m-%d 00:00:00') AND PDep='Kaya Chikitsa' AND PSex=0 GROUP BY `OPDNo`  
    ORDER BY RAND() LIMIT $ipdKayaChikitsaF" and b.Ward = 'Kaya Chikitsa (Female)' and b.status = '0';