J'ai une table d'images et une table d'emplacements Je souhaite récupérer une liste d'images représentant les images les plus récentes pour chaque emplacement dans certaines limites.Requête SQL imbriquée
SELECT * FROM images
WHERE location_id IN
(SELECT id FROM locations
WHERE latitude > 17.954 AND latitude < 52.574
AND longitude > -107.392 AND longitude < -64.853)
Ceci est une requête imbriquée, mais nous pourrions obtenir la même chose avec une jointure. Cela fonctionne si nous voulons que toutes les images pour chaque emplacement, mais je voudrais seulement obtenir 1 image par emplacement (la plus récente)
Voici les principaux champs de ces tables
table "images"
integer "id"
text "image_name"
text "caption"
integer "location_id"
datetime "created_at"
datetime "updated_at"
integer "view_count"
table "locations"
integer "id"
text "name"
float "longitude"
float "latitude"
datetime "created_at"
datetime "updated_at"
string "city"
string "address"
string "province"
string "country"
string "post_code"
tout idée?
points de bonus s'il y a un moyen de le faire en utilisant l'API rails activerecord
@ standup75 J'ai modifié votre question clarifier, selon vos commentaires, mais je n'ai pas le temps de réécrire la réponse maintenant. Bonne chance. –
Y a-t-il une colonne dans les images de la table qui indique la date et l'heure auxquelles l'image a été ajoutée/créée? Sinon, comment détermine-t-on à quel point une image est récente? – rskar
Oui, c'est "created_at" – standup75