join 문의 채택완료

item테이블의 상품 수정 시각과 외부연결 시각을 비교해서 상품정보를 가져오려고 합니다.

-------------

SELECT a.it_id, b.moddate FROM g5_shop_item as a inner join link as b on a.it_update_time > b.moddate where a.it_update_time > b.moddate and b.mb_id='mall' group by a.it_id
1:1650087011==2022-04-20 05:09:59--2022-04-21 07:45:34>>1650087011
2:1650402270==2022-04-20 05:09:59--2022-04-20 06:04:29>>1650402270
3:1650402272==2022-04-20 05:09:59--2022-04-20 06:04:29>>1650402272
4:1650402274==2022-04-20 05:09:59--2022-04-20 06:04:29>>1650402274
5:1650402276==2022-04-20 05:09:59--2022-04-20 06:04:29>>1650402276

---------------------

여기에서  결과값으로 1번만 출력 되기를 원합니다.

 

SELECT a.it_id, b.moddate FROM g5_shop_item as a inner join link as b on a.it_id = b.it_id where a.it_update_time > b.moddate and b.mb_id='mall' group by a.it_id

 

이렇게 실행하면, 출력값이 없습니다.

 

고수님들의 도움을 구합니다.

 

답변 1개

애초에 이런 query로 원하는 내용이 무엇인가요?

"여기에서  결과값으로 1번만 출력 되기를 원합니다."라면 끝에 limit 1만 붙여 주면 됩니다만...

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

저게 순서대로가 아니라, 저 query로 1번처럼 일자를 비교해서 일자가 변경된것만 출력하고 싶어요~
1:1650087011==2022-04-20 05:09:59--2022-04-21 07:45:34>>1650087011

처음 일자가 link db의 일자이고, 다음에 있는 일자가 item에 있는 일자입니다.
즉, link된 일자이후에 item에서 수정한 리스트를 원합니다.
https://stackoverflow.com/questions/12102200/get-records-with-max-value-for-each-group-of-grouped-sql-results
아마 이것을 사용하면 가능할 듯합니다.
SELECT a.* FROM g5_shop_item a left join link b on a.it_update_time > b.moddate where b.mb_id='mall' and group by a.it_id

이렇게 했더니 필요한 데이터 이외에 link DB에 없는데, 최근 등록한 아이템까지 나와요 ㅜㅜ
link DB에 있으면서 해당 조건을 만족하는 data를 출력하고 싶어요 ..
링크 내용을 잘 보시면
같은 테이블 끼리 join합니다.
그 이후에 다시 g5_shop_item하고 조인해야죠.
item DB의 it_update_time과 link DB의 moddate 를 비교하는데, link 자신에서 하나를 뽑아와야 한다는 건가요?

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고