Génial merci pour votre aide finalement je fait ma requête sur un autre champs
q=Gistevent.objects.filter(attr_name='machin chose') je perds 400 id_event mais pour ce proto ça suffira T. 2013/2/6 Florian Strzelecki <[email protected]> > En fait, je crois que j'ai mal compris ta question d'origine. > > Si je prends ton exemple de départ, ta requête SQL : > > SELECT * FROM gistevent WHERE id_event IN (SELECT DISTINCT id_event FROM > gistevent) > > Cette requête *doit* te retourner *tous les éléments* de ta table. > Ta sous-requête va retourner tous les id_event existant dans la table > (donc touchant à absolument toute la table), et tu vas ensuite filtrer sur > cette liste d'élément... qui représente *toute* ta table. > > Donc il y a un problème dans ce que tu dis vouloir faire. > Peut-être que tu voudrais plutôt faire quelque chose comme ceci : > > SELECT DISTINCT field_unique, id_event WHERE 1 GROUP BY field_unique, > id_event > > Ce qui peut se traduire par quelque chose du genre : > > Gistevent.objects.values('field_unique', 'id_event').annotates() > > Mais comme le dit Remy (pendant que je rédige ce mail) : tu dois avoir un > problème dans ton schéma quelque part... > > Le 6 février 2013 14:21, Florian Strzelecki <[email protected]>a > écrit : > > Hm. >> >> Et qu'est-ce que tu obtiens comme résultat juste en faisant ça : >> >> Gistevent.objects.values('id_event').distinct() >> >> Parce qu'au "pire" tu peux obtenir une liste de id_event distinct qui >> t'intéresse avec une première requête, puis une seconde requête avec le IN. >> Ça te permettra déjà de voir où est le soucis exactement. >> >> >> >> Le 6 février 2013 12:14, Tonton <[email protected]> a écrit : >> >> Merci de ta réponse mais non >>> j'ai toute la table >>> >>> >>> je cherche... >>> >>> >>> 2013/2/6 Florian Strzelecki <[email protected]> >>> >>>> Je réponds de manière naïve (je n'ai pas testé) : >>>> >>>> >>>> Gistevent.objects.filter(id_event__in=Gistevent.objects.values('id_event').distinct()).all() >>>> >>>> Ou quelque chose dans le genre. Le but est de fournir en filtre une >>>> sous-requête SQL. >>>> Le "values" permet de ne sélectionner que le champ "id_event", et le >>>> distinct sans field va juste faire un SELECT DISTINCT basique (et ça >>>> devrait marcher avec MySQL). >>>> >>>> Distinct: >>>> https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.distinct >>>> Values: >>>> https://docs.djangoproject.com/en/dev/ref/models/querysets/#values >>>> >>>> Par contre, je me rends compte que je ne me rappelle plus s'il est >>>> possible de faire des sous-requêtes... >>>> Faudrait que je teste à l'occasion. >>>> >>>> >>>> >>>> Le 6 février 2013 09:54, Tonton <[email protected]> a écrit : >>>> >>>>> Bon s'il il y à du monde alors je pose une question 8) >>>>> >>>>> je voudrai effectuer cette requête >>>>> >>>>> select * from gistevent where id_event in ( >>>>> select distinct id_event from gistevent ) >>>>> >>>>> >>>>> id_event contrairement à son nom n'est pas une clé de table >>>>> comment j’écris ça dans django ? >>>>> faut il créer une première requête pour faire une liste sachant que >>>>> mysql ne prend pas le distinct on >>>>> >>>>> Merci >>>>> >>>>> T. >>>>> >>>>> _______________________________________________ >>>>> django mailing list >>>>> [email protected] >>>>> http://lists.afpy.org/mailman/listinfo/django >>>>> >>>> >>>> >>>> _______________________________________________ >>>> django mailing list >>>> [email protected] >>>> http://lists.afpy.org/mailman/listinfo/django >>>> >>> >>> >>> _______________________________________________ >>> django mailing list >>> [email protected] >>> http://lists.afpy.org/mailman/listinfo/django >>> >> >> > > _______________________________________________ > django mailing list > [email protected] > http://lists.afpy.org/mailman/listinfo/django >
_______________________________________________ django mailing list [email protected] http://lists.afpy.org/mailman/listinfo/django
