2016-09-27 144 views
3

我需要在一个名为'队列'的表中插入一些数据,这是一个特定日期的病人队列。两个字段的数据将被插入。两个字段的名字是'PatientID'和'Visiting Date'。表 '队列' 等Mysql:insert into select && where does not exist

QueueID  |   PatientID |   Visiting_date | 
-------------|-------------------|-------------------------| 
     1  | 4    |  Current date  | 

表:队列

不过,虽然在插入记录有两个条件:

条件1:patitentID来自患者台(以下给出) 条件2:一个如果不存在以防止重复,记录将被插入'队列'表中。如果已经插入,PatientID = 4将不会被插入。

-------------|-----------------|------------------| 
patitentID | Patient Name | Contact no | 
-------------|-----------------|------------------| 
    4  | David   | 01245785874  | 

表:患者

我的SQL是:(它不工作)

INSERT INTO `queue`(`patientID`, `Visiting_date`) 
SELECT patient.`patientID`,’CURDATE()’ FROM `patient` 
WHERE NOT EXISTS (
    SELECT `patientID`, `visiting_date`FROM `queue` 
WHERE `patientID` = '4' AND `visting_date`=CURDATE() 
) LIMIT 1; 
+0

你会得到什么错误? –

回答

0

我会用一个单独的查询,以检查是否有与在该表ID的用户。

SELECT * FROM queue WHERE PatientID = 4;

,然后检查查询的结果,如果它返回一个排,这意味着有在那里的用户,并没有做任何事情。

如果查询没有返回一行,这意味着您现在可以使用查询来惰性化用户。像这样

INSERT INTO queue (PatientID, VisitingDate);