2016-09-27 6 views
3

Ich muss einige Daten in eine Tabelle mit dem Namen "Warteschlange", die eine Patientenwarteschlange in einem bestimmten Datum ist, einfügen. Zwei Felder Daten werden eingefügt. Zwei Felder Name sind 'PatientID' und 'Besuchsdatum'. Table 'Warteschlange' wieMysql: einfügen in auswählen && wo nicht exists

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

Tabelle: Warteschlange

Aber während der Aufzeichnung Einsetzen Es gibt zwei Bedingungen:

Bedingung 1: patitentID kommt vom Patiententisch (unten angegeben) Bedingung 2: eine Der Datensatz wird in die 'Queue'-Tabelle eingefügt, wenn er nicht existiert, um eine Wiederholung zu verhindern. PatientenID = 4 wird nicht eingefügt, wenn sie bereits eingefügt wurde.

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

Tabelle: Patient

My SQL ist: (es funktioniert nicht)

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

Welchen Fehler bekommen Sie? –

Antwort

0

Ich würde eine separate Abfrage verwenden, um zu überprüfen, ob ein Benutzer in dieser Tabelle mit dieser ID ist .

SELECT * FROM queue WHERE PatientID = 4;

und dann überprüfen Sie das Ergebnis dieser Abfrage, wenn es eine Zeile zurückgibt, bedeutet dies, dass ein Benutzer es da drin ist und man nichts tun.

Wenn die Abfrage keine Zeile zurückgibt, können Sie jetzt eine Abfrage verwenden, um einen Benutzer zu inaktivieren. Gefallen Sie diesen

INSERT INTO queue (PatientID, VisitingDate);

1

könnten Sie ein foreign key gesetzt, um sicherzustellen, besteht die Patienten-ID.

In der Queue-Tabelle können Sie patientID als unique festlegen, dies stellt sicher, dass Sie nur eindeutige IDs in die Queue-Tabelle einfügen können.

Auch wenn Sie in der Lage sein möchten, die gleiche Benutzer-ID, aber mit unterschiedlichen Daten einfügen Sie could specify unique constraint for multiple columns in MySQL.

Wenn Sie es nur mit einer MySQL-Abfrage lösen möchten, können Sie use this question.