PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Rails - obtenir des objets d'objets AVEC des doublons

Le includes La méthode d'AREL va choisir entre deux stratégies pour faire la requête, dont l'une fait simplement deux requêtes distinctes et l'autre fait un INNER JOIN. Dans les deux cas les produits seront distincts.

Il faut faire manuellement une jointure externe droite :

Product.joins('RIGHT JOIN categories ON categories.product_id = products.id').where(categories: { id: @my_product.categories.pluck(:id) } )

ajoute aussi .preload(:categories) si vous souhaitez conserver le chargement rapide des catégories.