반응형
날짜-시간을 기준으로 두 이벤트간에 연관성이 있는지 확인해야합니다 (동일한 테이블에서).
한 데이터 세트에는 특정 이벤트의 종료 날짜-시간이 포함되고 다른 데이터 세트에는 다른 이벤트의 시작 날짜-시간이 포함됩니다.
첫 번째 이벤트가 두 번째 이벤트 전에 완료되면 연결하고 싶습니다.
내가 지금까지 가지고있는 것은 :
SELECT name as name_A, date-time as end_DTS, id as id_A
FROM tableA WHERE criteria = 1
SELECT name as name_B, date-time as start_DTS, id as id_B
FROM tableA WHERE criteria = 2
그런 다음 그들과 합류합니다.
SELECT name_A, name_B, id_A, id_B,
if(start_DTS > end_DTS,'VALID','') as validation_check
FROM tableA
LEFT JOIN tableB ON name_A = name_B
그런 다음 validation_check 필드를 기반으로 SELECT가 중첩 된 UPDATE 쿼리를 실행할 수 있습니까?
해결 방법
실제로 다음 두 가지 방법 중 하나를 수행 할 수 있습니다.
MySQL 업데이트 조인 구문 :
UPDATE tableA a
INNER JOIN tableB b ON a.name_a = b.name_b
SET validation_check = if(start_dts > end_dts, 'VALID', '')
-- where clause can go here
ANSI SQL 구문 :
UPDATE tableA SET validation_check =
(SELECT if(start_DTS > end_DTS, 'VALID', '') AS validation_check
FROM tableA
INNER JOIN tableB ON name_A = name_B
WHERE id_A = tableA.id_A)
가장 자연스러운 것을 선택하십시오.
참조 페이지 https://stackoverflow.com/questions/1262786
반응형
'MySql' 카테고리의 다른 글
MySQL: Count entries without grouping? (0) | 2021.01.26 |
---|---|
MySQL Does import of a .sql file to MySQL overwrite the existing db or append to it? (0) | 2021.01.26 |
MySQL phpMyadmin의 최대 실행 시간 (0) | 2021.01.26 |
MySQL SQL-IF EXISTS UPDATE ELSE INSERT 구문 오류 (0) | 2021.01.26 |
MySQL 테이블에서 모든 행을 삭제하고 ID를 0으로 재설정 (0) | 2021.01.26 |
댓글