Hola que tal, este es mi primer tema dentro del foro

Me he decidido registrarme en el ya que tengo un problema con un query que parece muy sencillo pero no me sale con los resultados esperados y es por eso que recurro a ustedes.
Mi problemas es que tengo la siguiente tabla
Código:
idcamino nodo distancia nivel visitado
1 1 0 1 1
2 6 1657 1 0
3 13 1649 1 0
4 4 1609 1 0
5 9 922 4 0
6 17 1324 9 0
7 24 720 9 0
8 28 1159 9 0
Si ejecuto el siguiente query:
SELECT nodo FROM camino WHERE distancia=(SELECT MIN(distancia) FROM camino WHERE nivel= 1 AND distancia != '0')
Me devuelve el 4
Si ahora ejecuto este:
SELECT nodo FROM camino WHERE distancia=(SELECT MIN(distancia) FROM camino WHERE nivel= 4 AND distancia != '0')
Me devuelve el 9
Hasta ahí todo bien :)
Pero si ejecuto el siguiente:
SELECT nodo FROM camino WHERE distancia=(SELECT MIN(distancia) FROM camino WHERE nivel= 9 AND distancia != '0')
Me devuelve el 28

y me tendría que devolver el 24
Ya intente de todo y no logro hacer que me seleccione el 24 y no se porque pueda ser, dirán que me complico la vida y que ponga el idcamino en el WHERE pero el valor del nivel no siempre va a ser igual ya que es un recorrido de un grafo y no siempre es igual así que no me serviría.
Agradecería si alguien me pudiera ayudar diciéndome que es lo que estoy haciendo mal o porque esque me devuelve el 28.