11
votes

Comment chercher des valeurs distinctes avec l'algèbre arelle / relationnelle

Je fais de mon mieux pour plier mon cerveau autour d'Arel et l'algèbre relationnelle derrière elle, mais comment représenter un Sélectionner distinct éluise de manière constante ma compréhension. Quelqu'un peut-il expliquer comment arel: xxx

Merci beaucoup!


1 commentaires

Je ne connais pas l'arelle mais de ma lecture de "base de données en profondeur" par C.J.Date, en algèbre relationnelle, le résultat d'une requête est un ensemble de tuples. Donc, si Arel suit cette théorie que distinct doit être la valeur par défaut.


6 Réponses :


1
votes

post.sélectionnez ("Titre distinct")

Mise à jour 1:

au moment de la poste, ce n'était pas disponible en arel. Ces jours-ci, ActiveRecord :: QueryMethods possède la méthode UNIQ ( http: / /APidock.com/Rails/acterecord/QueryMethods/uniq ), vous souhaiteriez donc: xxx

update 2: On dirait que Arel soutient maintenant ce comportement. @maerics a la bonne réponse. Je supprimerais ceci si ce n'était pas la réponse acceptée.


3 commentaires

Pas exactement algébrique, mais difficile à argumenter avec son efficacité ;-)


Il existe un problème mortel avec cette approche: si vous avez plus d'une portée avec une instruction SELECT, les chaînait ensemble peut provoquer une SQL invalide.


Ce n'est pas arel, et donc il ne répond pas à la question.