[Galette-discussion] Re: [Galette-discussion] Re: [Galette-discussion] Script d'export |
[ Thread Index |
Date Index
| More lists.galette.eu/users Archives
]
- To: users@xxxxxxxxxxxxxxxx
- Subject: [Galette-discussion] Re: [Galette-discussion] Re: [Galette-discussion] Script d'export
- From: Johan <johan@xxxxxxxx>
- Date: Tue, 21 Jan 2020 21:27:44 +0100
Le 21 janvier 2020 20:31:47 GMT+01:00, Guillaume Rousse <guillomovitch@xxxxxxxxx> a écrit :
>
>
>Le 21/01/2020 à 11:49, JLM a écrit :
>> Bonjour,
>>
>> Bonne année à tous et surtout à Galette, puisse-t-elle continuer à se
>bonifier d’année en année et continuer à nous rendre service au
>quotidien !
>>
>> Je m’intéresse depuis peu à la personnalisation des scripts d’export.
>Je parviens à exporter dans un même fichier les données de plusieurs
>tables grâce à la fonction “inner join”, mais j’ai deux problèmes :
>>
>> - je n’arrive pas à récupérer une info dans une troisième table qui
>n’a pas de champ commun avec toutes les tables impliquées dans le
>script, mais seulement avec une seule. Par exemple, avec le script
>ci-dessous, en partant de l’id adhérent, je récupère sa cotisation dans
>la table galette_cotisations, ainsi que son numéro de groupe dans la
>table galette_groups_members, mais je ne sais pas comment récupérer le
>nom du groupe qui correspond à ce numéro de groupe, et qui se trouve
>dans une nouvelle table galette_groups…Il te faut une 3e jointure:
>INNER JOIN galette_groups ON
>(galette_groups_members.id_group=galette_groups.id_group)
>et remplacer id_group par group_name dans la liste des champs souhaités
>
>Et si tu veux rendre le résultat un poil plus lisible, tu peux utiliser
>
>des aliases:
>SELECT nom_adh, prenom_adh, montant_cotis, group_name, date_fin_cotis
>FROM galette_adherents AS adherents
>INNER JOIN galette_cotisations AS cotisations ON
> (adherents.id_adh=cotisations.id_adh)
>INNER JOIN galette_groups_members AS members ON
> (members.id_adh=adherents.id_adh)
>INNER JOIN galette_groups AS groups ON
> (members.id_group=groups.id_group)
>
>> - ensuite, ce script me permet de récupérer toutes les cotisations
>des adhérents, or, je ne souhaite exporter que la dernière cotisation
>en date. Là, j’ai toutes les cotisations cumulées depuis qu’ils ont
>commencé à adhérer
>Une condition de tri décroissante suivie d'une limite devrait
>correspondre à ton besoin:
>ORDER BY date_enreg DESC
>LIMIT 1
>
>Non testé, je n'ai ni groupes, ni cotisations dans ma base.
>
>A+
Salut,
Les conseils de Guillaume t'aideront bien. Juste deux précisions :
- si tu utilises du INNER JOIN sur les groupes, tu obtiendra les adhérents qui font partie d'un groupe, mais pas les adhérents qui n'en possèdent aucun ; il faut probablement du LEFT JOIN
- pour ne récupérer qu'une seule contribution, peut être qu'il faudra utiliser genre un GROUP BY.
++
Johan
--
Galette users discussions
http://galette.eu - http://galette.eu/documentation
http://bugs.galette.eu/projects/galette/
List documentation: https://listengine.tuxfamily.org/lists.galette.eu/users/