-1

MySQL DB に次の SQL があります。

select code, distance from locations;    

出力は以下のとおりです。

CODE    DISTANCE            LOCATION
106     386.895834130068    New York, NY
80      2116.6747774121     Washington, DC
80      2117.61925131453    Alexandria, VA
106     2563.46708627407    Charlotte, NC
106     2030.5845606766     Atalanta, GA

単一のコードと最も近い距離を取得できるようにしたい。だから私はこれを返したい:

CODE    DISTANCE            LOCATION
106     386.895834130068    New York, NY
80      2116.6747774121     Washington, DC

私はもともと次のようなものを持っていました:

SELECT code, min(distance), location
GROUP BY code
HAVING distance > 0 
ORDER BY distance ASC
4

3 に答える 3

0
  SELECT code, min(distance), location
GROUP BY code,location
  HAVING distance =min(distance)
于 2012-07-27T08:31:42.740 に答える
0

SELECT code, distance, location FROM locations GROUP BY code HAVING distance > 0
ORDER BY distance ASC LIMIT 1

于 2012-07-27T10:35:18.517 に答える
0

これを試して:

select L.* from (
    SELECT code, min(distance) as min_distance 
    from places
    GROUP BY code)a
join places L
on L.CODE=a.CODE
and L.DISTANCE=a.min_distance 
于 2012-07-27T08:46:44.777 に答える