2017-03-21 2 views
-1

본인은이 MySQL 규정을 보유하고 있습니다. 이 SQL을 반복적으로 실행하여 세 번째 테이블에 결과를 삽입하려면 세 번째 테이블의 레코드를 복제하십시오.레코드를 복제하지 않고 테이블에 레코드 삽입

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()) 

나는 다음과 같은 성명을 시도하고 있지만 오류를 던지고있다

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)))   
) 

답변

0

당신을 didnt 언급 존재 또는 마지막 SELECT 문에서 조건을 존재하지 ... u는 단순히 존재하는없이 및 조건을 넣어 또는 존재하지 않거나 안으로 또는 아닙니다. 거기 유효한 조건의 무엇이든을 두는 것을 시도하십시오. 또한 첫 번째 select 문에서 같은 테이블을 두 번 사용하고 별칭없이 조인하면 한 번만 확인합니다.

+0

고마워. 그게 정말 바보 같았 어. 당신의 충고가 도움이되었습니다. 그 지금 일하고있어. – Raky

관련 문제