SQL 질문
본문
저가 제품과 가장 고가 제품을 납품하는 제조업체명과 해당상품명을 출력하고싶은데
SQL을 어떻게 작성해야 할지 모르겠어요 ㅠㅠ
+--------------+-----------------+-----------+--------+--------------+
| 제품번호 | 제품명 | 재고량 | 단가 | 제조업체 |
+--------------+-----------------+-----------+--------+--------------+
| p01 | 그냥만두 | 5000 | 4500 | 대한식품 |
| p02 | 매운쫄면 | 2500 | 5500 | 민국푸드 |
| p03 | 쿵떡파이 | 3600 | 2600 | 한빛제과 |
| p04 | 만나초콜렛 | 1200 | 2500 | 한빛제과 |
| p05 | 얼큰라면 | 2200 | 1200 | 대한식품 |
| p06 | 통통우동 | 1000 | 1550 | 민국푸드 |
| p07 | 달콤비스켓 | 1650 | 1500 | 한빛제과 |
답변 6
그냥 가격별로 정렬해서 최저가 - 첫행 - 최고가 - 마지막행 - 으로 하시는게 좋습니다.
물론 다른 분들처럼 쿼리로 만들어서 할수도 있지만 최저인지, 최고인지 구분하는 필드를 넣어야 되고
그거 처리하는건 도긴개긴입니다.
최고가
SELECT 제조업체,제품명 FROM 테이블 WHERE 단가= (SELECT max(단가) FROM 테이블);
최저가
SELECT 제조업체,제품명 FROM 테이블 WHERE 단가= (SELECT min(단가) FROM 테이블);
ORDER BY `단가` LIMIT 1
ORDER BY `단가` DESC LIMIT 1
이렇게 해서 갖고 오면 되지 않을까요?
SELECT 제조업체,제품명 FROM 테이블 WHERE 단가= (SELECT max(단가) FROM 테이블) OR 단가= (SELECT min(단가) FROM 테이블);
성능을 논외로 한다면..
select price,pname,com from test where price=(select min(price) from test) or price=(select max(price) from test);
/*최고가 */
(SELECT 제조업체,제품명 FROM 테이블 order by 단가 DESC limit 1)
union
/*최저가*/
(SELECT 제조업체,제품명 FROM 테이블 order by 단가 ASC limit 1)
댓글쓰기