Le 29/01/2017 à 16:09, Johan Cwiklinski
a écrit :
Salut,
Le 29.01.2017 13:44, f.lassave@xxxxxxx a écrit :
Bonjour à tous,
Je me suis re-lancé dans le SQL ...
C'est possible... Dans Galette, je n'utilise pas ce type de chose
; l'adhérent parent est chargé au besoin via une nouvelle requête
et on récupère les infos depuis ce denier.
Pour le coup, il faut probablement une sous requête qui va aller
récupérer les infos complémentaires ; et des conditions pour
prendre l'adresse de l'adhérent ou de son parent s'il n'en possède
pas.
On peut très bien faire une jointure sur la même table pour faire ce
type de substitution ; exemple
SELECT
`ad1`.`nom_adh` AS `nom`,
`ad1`.`prenom_adh` AS `prenom`,
CASE WHEN `ad1`.`adresse_adh` != '' THEN `ad1`.`adresse_adh`
ELSE `ad2`.`adresse_adh`
END AS `adresse`,
`ad1`.`parent_id` AS `parent`
FROM
`galette_adherents` as `ad1`
LEFT OUTER JOIN `galette_adherents` AS `ad2` ON
`ad2`.`id_adh` = `ad1`.`parent_id`
WHERE
1
Le "LEFT OUTER JOIN" permet d'explorer toute la table ad1 ; un
"(INNER) JOIN" simple se limiterait aux enregistrements qui ont
effectivement un lien 'parent'
Daniel
|