J'essaie de récupérer une liste de propriétés et pour ce faire, je dois relier 4 tables. Les tables sont: property, property_type, state et photo.Obtenir uniquement l'image par défaut pour une propriété
Le problème consiste à obtenir SEULEMENT l'image par défaut pour une propriété. La photo avec le numéro de rang le plus bas devrait être la photo par défaut. Donc, s'il y a 2 photos pour la propriété 10, celle avec la valeur de rang inférieure devrait être dans cet ensemble de résultats. Jetez un oeil à ce que j'ai jusqu'à présent, il devrait expliquer ce que j'ai fait jusqu'à présent. Fondamentalement, il montre une liste de propriétés, y compris un identifiant de photo attribué à cette propriété. Malheureusement, puisque j'utilise GROUP BY pour éliminer les résultats supplémentaires (ne pas avoir besoin de 5 lignes pour une propriété si 5 photos lui sont assignées), commander par classement photo ne change pas mes résultats comme je le pensais.
SELECT
property.property_id,
property.property_name,
state.state_id,
state.state_name,
photo.photo_id,
photo.rank
FROM property
JOIN photo
ON property.property_id = photo.property_id
JOIN property_type
ON property.property_type_id = property_type.property_type_id
JOIN state
ON property.state_id = state.state_id
GROUP BY property.property_id
ORDER BY
state.state_name ASC,
property.property_name ASC,
photo.rank ASC
Est-ce que quelqu'un peut me diriger dans la bonne direction? Une chose à noter, je viens dans ce projet qui est déjà terminé. La structure de la base de données ne peut donc pas être modifiée à ce stade.
Uhm .. y a-t-il une syntaxe err sur "ON x.property_id"? Upvoted 'parce que l'approche est la bonne. – Radu094
@ Radu094: Thx, corrigé. Je faisais trop attention aux trucs PHOTOS :) –
merci! cela fonctionne parfaitement. – Roeland