Ich habe eine Abfrage, die einige Benutzer zu einem bestimmten Benutzer (Bob) zurückgibt.mysql: Reihenfolge nach nächster ID
Ich muss die nächsten Datensätze abrufen, dh ich muss Benutzer zurückgeben, deren ID-Spalte in der Nähe von Bobs ID ist.
Zum Beispiel:
ID
Tom 5
Mike 8
Bob 10
Jack 12
Brian 13
Die Abfrage:
SELECT users.* FROM users
INNER JOIN neighboors on neighboors.neighboor_id = users.id #ignore this join, just to exemplify
WHERE neighboors.user_id = 10 # bobs id
ORDER BY something
LIMIT 3 # i want to return only the 3 nearest users (according to the table above:mike, jack and brian)
Wie kann ich das erreichen?
aktualisiert
die Logik ist, können die Benutzer Bäume pflanzen, hat jeder Baum specie. Die Abfrage sollte Benutzer zurückgeben, die dieselbe Baumart gepflanzt haben.
Und warum ist wichtige Reihenfolge durch Nähe von ID? Der Klient will diesen Weg :) Es gibt keinen anderen Grund.
ist das reine MySQL? Oder haben Sie eine Anwendungssprache, mit der Sie arbeiten können? –
ich verwende Rubin auf Schienen. während ich nicht eine Weise habe, nur sql zu verwenden, das mit Schienen arbeitet. Ich gebe alle Benutzer-IDs, dann bekomme ich die nahe IDs mit Ruby und zum Schluss, ich frage diese IDs –