반응형
OK 미친 듯이 대답하기 위해 인터넷 검색을 시도했지만 해결할 수 없었으므로 누군가가 도울 수 있기를 바랍니다.
사용자 테이블, 매우 간단한 테이블이 있다고 가정 해 보겠습니다.
id | userName
3 Michael
4 Mike
5 George
그들의 차와 가격에 대한 또 다른 테이블이 있습니다.
id | belongsToUser | carPrice
1 4 5000
2 4 6000
3 4 8000
이제 내가해야 할 일은 다음과 같은 것입니다 (재 작성해도 괜찮습니다).
SELECT
`userName`,
`carPrice`
FROM `users`
LEFT JOIN `cars`
ON cars.belongsToUser=users.id
WHERE `id`='4'
다음을 반환합니다.
Mike | 5000
하지만 첫 번째 항목이 아닌 특정 사용자의 가장 비싼 차가 필요합니다.
그래서 질문 : carPrice, DESC가 주문하도록 LEFT JOIN 테이블을 어떻게 설정합니까?
해결 방법
GROUP BY
와 함께 MAX
를 사용해보십시오.
SELECT u.userName, MAX(c.carPrice)
FROM users u
LEFT JOIN cars c ON u.id = c.belongsToUser
WHERE u.id = 4;
GROUP BY u.userName;
group by 절은 group by 열의 고유 한 조합을 기반으로 선택한 레코드를 그룹으로 분할하는 데 사용됩니다. 그러면 각 레코드 그룹에 차례로 적용될 집계 함수 (예 : MAX, MIN, SUM, AVG, ...)를 사용할 수 있습니다. 데이터베이스는 각 그룹에 대해 단일 결과 레코드를 반환합니다.
예를 들어 다음과 같은 테이블에 시간 및 위치에 따른 온도를 나타내는 레코드 세트가있는 경우 :
Location Time Temperature
-------- ---- -----------
London 12:00 10.0
Bristol 12:00 12.0
Glasgow 12:00 5.0
London 13:00 14.0
Bristol 13:00 13.0
Glasgow 13:00 7.0
...
그런 다음 위치별로 최대 온도를 찾으려면 온도 기록을 그룹으로 분할해야합니다. 여기서 특정 그룹의 각 기록은 동일한 위치를가집니다. 그런 다음 각 그룹의 최대 온도를 찾고 싶습니다. 이를 수행하는 쿼리는 다음과 같습니다.
SELECT Location, MAX(Temperature)
FROM Temperatures
GROUP BY Location;
참조 페이지 https://stackoverflow.com/questions/5355585
반응형
'MySql' 카테고리의 다른 글
MySQL PHP/MySQL Insert null values (0) | 2020.10.14 |
---|---|
MySQL INT 열에 NULL 값 삽입 (0) | 2020.10.14 |
MySQL max () + 1 문제로 값 삽입 및 설정 (0) | 2020.10.14 |
MySQL 테이블에서 두 번째로 높은 값 가져 오기 (0) | 2020.10.14 |
MySQL Laravel 컬렉션에서 요소의 인덱스를 얻는 방법 (0) | 2020.10.14 |
댓글