2016-09-27 146 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);