2017-03-21 4 views
-1

Ich habe diese MySQL-Anweisung. Ich möchte dieses SQL wiederholt ausführen, um das Ergebnis in eine dritte Tabelle einzufügen, ohne die Datensätze in der dritten Tabelle zu duplizieren.Datensätze in eine Tabelle einfügen, ohne die Datensätze zu duplizieren

SELECT `Client_ID`, `Client_RFID_Number` 
FROM ciom_master AS a 
WHERE (`Client_Active` ='Y' OR `Client_Active` ='y') 
    AND NOT EXISTS (
        SELECT (`Client_Check_Out`) 
        FROM `cio_master` AS b 
        WHERE a.Client_ID = b.Client_ID 
         and Client_Check_Out = CURDATE()) 
AND NOT EXISTS (
       SELECT (`Client_Check_In`) 
       FROM `cio_master` AS c 
       WHERE a.Client_ID = c.Client_ID 
        and Client_Check_In = CURDATE()) 

ich folgende Erklärung bin versucht, aber es wirft Fehler

INSERT IGNORE INTO cio_alert (`Client_ID`, `Client_RFID_Number`, `Client_Check_Out`, `Client_Check_In`) 

SELECT `ciom_master`.`Client_ID`, `ciom_master`.`Client_RFID_Number`,`cio_master`.`Client_Check_Out`, `cio_master`.`Client_Check_In` FROM ciom_master 
INNER JOIN `cio_master` ON `ciom_master`.`Client_ID` = `ciom_master`.`Client_ID` 
WHERE EXISTS 
(SELECT `Client_ID`, `Client_RFID_Number` 
    FROM ciom_master AS a 
    WHERE (`Client_Active` ='Y' OR `Client_Active` ='y') 
     AND NOT EXISTS (
        SELECT (`Client_Check_Out`) 
        FROM `cio_master` AS b 
        WHERE a.Client_ID = b.Client_ID 
         and Client_Check_Out = CURDATE()) 
     AND NOT EXISTS (
       SELECT (`Client_Check_In`) 
       FROM `cio_master` AS c 
       WHERE a.Client_ID = c.Client_ID 
        and Client_Check_In = CURDATE()) 
     AND (
       SELECT `Client_Check_Out` FROM cio_master 
       WHERE ((`Client_Check_Out` IS NOT NULL AND `Client_Check_In` IS NULL) 
       OR (`Client_Check_Out` IS NULL AND `Client_Check_In` IS NULL))) 
     AND (
       SELECT `Client_Check_In` FROM cio_master 
       WHERE ((`Client_Check_Out` IS NOT NULL AND `Client_Check_In` IS NULL) 
       OR (`Client_Check_Out` IS NULL AND `Client_Check_In` IS NULL)))   
) 

Antwort

0

Sie nur knapp sein Ziel Erwähnung existiert oder nicht Bedingung in der letzten SELECT-Anweisung existiert ... u einfach die Bedingung und ohne setzen existieren oder nicht vorhanden oder in oder nicht in. Versuchen Sie, eine gültige Bedingung dort drüben zu setzen. Und auch in der ersten Select-Anweisung, die Sie zweimal mit der gleichen Tabelle verwenden und ohne Alias ​​verbinden, versuchen Sie, das auch einmal zu überprüfen.

+0

Danke für die Korrekturen. Das war wirklich sehr dumm von mir. Dein Rat hat mir geholfen. Es funktioniert jetzt. – Raky

Verwandte Themen