반응형
users
테이블과 payments
테이블이 있습니다. 각 사용자에 대해 결제가있는 사용자는 payments
테이블에 여러 개의 관련 결제가있을 수 있습니다. . 결제가있는 모든 사용자를 선택하고 최근 결제 만 선택하고 싶습니다. 이 SQL을 시도하고 있지만 이전에 중첩 SQL 문을 시도한 적이 없으므로 내가 뭘 잘못하고 있는지 알고 싶습니다. 도움을 주셔서 감사합니다
SELECT u.*
FROM users AS u
INNER JOIN (
SELECT p.*
FROM payments AS p
ORDER BY date DESC
LIMIT 1
)
ON p.user_id = u.id
WHERE u.package = 1
해결 방법
사용자 ID
별로 최신 날짜를 가져 오려면 하위 쿼리가 있어야합니다.
SELECT a.*, c.*
FROM users a
INNER JOIN payments c
ON a.id = c.user_ID
INNER JOIN
(
SELECT user_ID, MAX(date) maxDate
FROM payments
GROUP BY user_ID
) b ON c.user_ID = b.user_ID AND
c.date = b.maxDate
WHERE a.package = 1
참조 페이지 https://stackoverflow.com/questions/12526194
반응형
'MySql' 카테고리의 다른 글
MySQL 검색 및 필드의 일부 텍스트 바꾸기 (0) | 2021.01.27 |
---|---|
MySQL 여러 검색 조건으로 MYSQL CASE WHEN 문을 작성하는 방법은 무엇입니까? (0) | 2021.01.27 |
MySQL How can I convert MySQL database to SQLite in PHP? (0) | 2021.01.27 |
MySQL Automatically importing products into Woocommerce (0) | 2021.01.27 |
MySQL 배열을 파일에 쓰는 가장 좋은 방법은 무엇입니까? (0) | 2021.01.27 |
댓글