mariadb union 조회할 때 테이블 조건 방법 0 1 2,669

by tosswin [SQL Query] mariadb union [2024.01.05 11:24:10]


갑진년 값진 날로 가득하시길 바라면, 새해 복 많이 받으세요.

2개의 테이블을 union으로 합치고 있습니다.

테이블이 2가지가 있습니다.

tbl_a 

rundatetime name desc
2023-11-04 홍길동 1
2023-11-04 홍길순 2
2023-11-04 김길동 3
2023-11-05 홍길동 11
2023-11-05 홍길순 22
2023-11-05 김길동 33
2023-11-06 홍길동 111
2023-11-06 홍길순 222
2023-11-06 김길동 333

 

tbl_b

rundatetime name desc
2023-11-04 강일이 4
2023-11-04 이이삼 5
2023-11-06 강일이 444
2023-11-06 이이삼 555

 

tbl_b 에서 2023-11-05 데이터가 누락되어 있습니다.

이를 아래와 같은 테이블로 조회하고 싶습니다.

rundatetime name desc
2023-11-04 홍길동 1
2023-11-04 홍길순 2
2023-11-04 김길동 3
2023-11-04 강일이 4
2023-11-04 이이삼 5
2023-11-06 홍길동 111
2023-11-06 홍길순 222
2023-11-06 김길동 333
2023-11-06 강일이 444
2023-11-06 이이삼 555

tbl_b에 없는 2023-11-05 데이터는 빼고 조회하고 싶습니다.

 

이런 조회도 가능할까요?

 

찾아보다가 못 찾고 이렇게 질문드립니다.

 

 

오늘도 좋은 하루 보내세요^^

by 마농 [2024.01.07 22:01:50]

요청하신 케이스가 전부인가요? (A 에만 자료가 있는 경우)
혹시 B 에만 자료가 있는 경우가 존재할 가능성은 없는지요?

WITH tbl_a AS
(
SELECT '2023-11-04' rundatetime, '홍길동' name, '1' desc_
UNION ALL SELECT '2023-11-04', '홍길순', '2'
UNION ALL SELECT '2023-11-04', '김길동', '3'
UNION ALL SELECT '2023-11-05', '홍길동', '11'
UNION ALL SELECT '2023-11-05', '홍길순', '22'
UNION ALL SELECT '2023-11-05', '김길동', '33'
UNION ALL SELECT '2023-11-06', '홍길동', '111'
UNION ALL SELECT '2023-11-06', '홍길순', '222'
UNION ALL SELECT '2023-11-06', '김길동', '333'
)
, tbl_b AS
(
SELECT '2023-11-04' rundatetime, '강일이' name, '4' desc_
UNION ALL SELECT '2023-11-04', '이이삼', '5'
UNION ALL SELECT '2023-11-06', '강일이', '444'
UNION ALL SELECT '2023-11-06', '이이삼', '555'
)
SELECT *
  FROM tbl_a
 WHERE rundatetime IN (SELECT rundatetime FROM tbl_b)
 UNION ALL
SELECT *
  FROM tbl_b
 ORDER BY 1, 3
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입