2012-11-27 8 views
1

could`t create table here so had to printscreen 어떻게 MySQL이

그래서 질문은 내가 테이블 SP에서 최대 수량 (수량)가 공급자 (S)을 표시 할 수있는 방법입니다 여러 열에서 최대 값을 찾을 수 있습니다.

이 내가 생각 해낸 것입니다 :

SELECT sno FROM sp WHERE sno in (SELECT max(QTY) FROM sp WHERE qty); 

하지만 그것은 단지 빈 필드를 표시하고, 내가 문제를 찾을 수 없습니다. 정말 감사드립니다.

답변

2
SELECT a.* 
FROM tableA a 
    INNER JOIN tableB b 
     ON a.S = b.S 
WHERE b.qty = (SELECT max(qty) FROM tableB) 
+0

+1 같은 비용이 많이 드는 부속 선택 또는 아무것도를 할 필요없이 S에서 데이터를 얻을 조인 할 수 있습니다 ... –

1

당신은 수량과하지 인덱스 수에 대한

SELECT sno FROM sp ORDER BY qty DESC LIMIT 1

그 방법은 전체 테이블 스캔

0123을해야 할 방법

는 그리고 당신은 그 사용이 더 잘 보이는 ... 그

SELECT s.* FROM sp LEFT JOIN s USING(sno) ORDER BY qty DESC LIMIT 1