IT/Database

MySQL Error

iamhyeon 2024. 11. 28. 20:21

쇼핑몰 - 회원의 최근 배송지 목록 조회하기

 

⬇️ payments 테이블의 데이터 

⬇️ SQL

SELECT DISTINCT
	receivername, receiverphone, postcode, addr1, addr2	
FROM payments
WHERE memberid = 2
ORDER BY date DESC
LIMIT 5;

 

⬇️ Error

[ERROR] 24-11-28 20:05:03 [sqlonly:144] - 1. PreparedStatement.execute() SELECT DISTINCT
receivername, receiverphone, postcode, addr1, addr2
FROM payments
WHERE memberid = 2 AND paycheck = 'Y'
ORDER BY date DESC
LIMIT 5

java.sql.SQLException: Expression #1 of ORDER BY clause is not in SELECT list, references column 'sony.payments.date' which is not in SELECT list; this is incompatible with DISTINCT

 

⬇️ 원인

ORDER BY 절에서 사용된 date 가 SELECT 목록에 포함되지 않았기 때문이다

DISTINCT와 ORDER BY를 함께 사용할 때, ORDER BY에 사용된 모든 칼럼이 SELECT 목록에 포함돼야 한다

 

 

✨ 최종

SELECT DISTINCT 
	receivername, receiverphone, postcode, addr1, addr2, date 
FROM payments 
WHERE memberid = 2 AND paycheck = 'Y' 
ORDER BY date DESC 
LIMIT 5;

 

|-------------|--------------|---------|------------|------|--------------------|
|receivername |receiverphone |postcode |addr1       |addr2 |date                |
|-------------|--------------|---------|------------|------|--------------------|
|신민재          |01034563456   |90876    |서울시 강남구 역삼동 |404호  |2024-11-28 19:51:17 |
|문성주          |01034563456   |45645    |서울시 강남구 잠실동 |8호    |2024-11-28 19:50:15 |
|-------------|--------------|---------|------------|------|--------------------|

 

 

반응형

'IT > Database' 카테고리의 다른 글

SQLTools  (0) 2024.11.29
HeidiSQL  (1) 2024.11.29
MySQL Database 구축하기  (1) 2024.11.18
MySQL 데이터베이스 관리  (3) 2024.11.13
트랜잭션 Transaction  (1) 2024.10.08