데이터 관련/SQL - 1일 1쿼리
2025.02.07(금) 1일 1쿼리
subindev
2025. 2. 7. 10:55
현재 Mybatis를 사용하여 진행중인 'A+ 마켓 플러터 앱 프로젝트' 에서 사용된 쿼리입니다.
Quiz) 채팅방 Id를 이용하여 최근 메시지 30개를 포함한 채팅방 정보
SELECT
c.id AS chatRoomId,
tpi.uuid_name AS productThumbnail,
p.product_name AS productName,
p.price AS price,
p.is_negotiable AS isNegotiable,
p.id AS productId,
u.id AS userId,
u.name AS userName,
u.profile_img AS profileImage,
rm.id AS chatMessageId,
rm.content AS content,
rm.created_at AS createdAt
FROM tb_chat_room AS c
JOIN tb_product AS p ON p.id = c.product_id
JOIN tb_chat_mapping AS cm ON cm.chat_room_id = c.id
JOIN tb_user AS u ON u.id = cm.user_id
JOIN tb_product_image tpi ON tpi.product_id = p.id AND tpi.sequence = 0
JOIN tb_chat_message rm ON c.id = rm.chat_room_id AND u.id = rm.user_id
WHERE c.id = #{chatRoomId}
ORDER BY rm.created_at desc
limit 30
