Aide pour une requête assez simple
Résolu
Mosa
-
jeremims -
jeremims -
Bonjour,
Dans une base mysql j'ai créé deux tables, une table société et une table conf société
la table SOCIETE est constituée ainsi :
SOCIETE_ID
SOCIETE_NOM
SOCIETE_DOMAINE
SOCIETE_LOGO
SOCIETE_ID est l'index et unique. Jeu de donnée d'exemple :
1 | TOTO | toto.com | toto.gif
2 | TITI | titi.com | titi.gif
3 | TUTU | tutu.com | tutu.gif
la table SOCIETE_CONF est constituée ainsi :
SOCIETE_CONF_ID
SOCIETE_CONF_PARAM
SOCIETE_CONF_VALUE
SOCIETE_CONF_ID a une contrainte d'intégrité sur la table SOCIETE avec SOCIETE_ID et SOCIETE_CONF_ID
Voici un jeu de données
1 | STATUS | SAS |
1 | IPADRESSE | 11.11.11.11 |
1 | PAYS | FR |
2 | STATUS | EURL |
2 | IPADRESSE | 10.10.10.10 |
2 | PAYS | ES |
1 | STATUS | SASU |
1 | PAYS | DE |
j'ai les contraintes pour la table SOCIETE :
SOCIETE_DOMAINE = 'titi.com'
et SOCIETE_CONF
SOCIETE_CONF_ID=SOCIETE_ID correspondant a SOCIETE_DOMAINE = 'titi.com'
j'aimerai toutes les données alignées ainsi
2, TITI, titi.com,titi.gif, EURL, 10.10.10.10
est ce un UNION que je dois utiliser ? je n'arrive pas a structurer ma requette ... je n'ai pas les idées claires. .. pouvez vous m'aider
En question complémentaire, si je souhaite avoir le champs IPADRESSE de la SOCIETEID = 2 si elle existe, est ce possible ?
Merci de votre aide précieuse.
Dans une base mysql j'ai créé deux tables, une table société et une table conf société
la table SOCIETE est constituée ainsi :
SOCIETE_ID
SOCIETE_NOM
SOCIETE_DOMAINE
SOCIETE_LOGO
SOCIETE_ID est l'index et unique. Jeu de donnée d'exemple :
1 | TOTO | toto.com | toto.gif
2 | TITI | titi.com | titi.gif
3 | TUTU | tutu.com | tutu.gif
la table SOCIETE_CONF est constituée ainsi :
SOCIETE_CONF_ID
SOCIETE_CONF_PARAM
SOCIETE_CONF_VALUE
SOCIETE_CONF_ID a une contrainte d'intégrité sur la table SOCIETE avec SOCIETE_ID et SOCIETE_CONF_ID
Voici un jeu de données
1 | STATUS | SAS |
1 | IPADRESSE | 11.11.11.11 |
1 | PAYS | FR |
2 | STATUS | EURL |
2 | IPADRESSE | 10.10.10.10 |
2 | PAYS | ES |
1 | STATUS | SASU |
1 | PAYS | DE |
j'ai les contraintes pour la table SOCIETE :
SOCIETE_DOMAINE = 'titi.com'
et SOCIETE_CONF
SOCIETE_CONF_ID=SOCIETE_ID correspondant a SOCIETE_DOMAINE = 'titi.com'
j'aimerai toutes les données alignées ainsi
2, TITI, titi.com,titi.gif, EURL, 10.10.10.10
est ce un UNION que je dois utiliser ? je n'arrive pas a structurer ma requette ... je n'ai pas les idées claires. .. pouvez vous m'aider
En question complémentaire, si je souhaite avoir le champs IPADRESSE de la SOCIETEID = 2 si elle existe, est ce possible ?
Merci de votre aide précieuse.
A voir également:
- Aide pour une requête assez simple
- Iphone 14 simple - Guide
- Simple pdf - Télécharger - PDF
- Simple ocr - Télécharger - Bureautique
- Simple file locker - Télécharger - Sécurité
- Simple comic - Télécharger - Vie quotidienne
3 réponses
Bonjour,
Non, je pense plutôt que c'est un JOIN ( ou LEFT JOIN ou INNER JOIN ou RIGHT JOIN ...)
Oui Il suffit de mettre un WHERE dans ta requête
est ce un UNION que je dois utiliser ?
Non, je pense plutôt que c'est un JOIN ( ou LEFT JOIN ou INNER JOIN ou RIGHT JOIN ...)
En question complémentaire, si je souhaite avoir le champs IPADRESSE de la SOCIETEID = 2 si elle existe, est ce possible
Oui Il suffit de mettre un WHERE dans ta requête
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Je pense également que tu n'as pas les idées claires.
Quand tu écris "j'ai les contraintes pour la table SOCIETE :
SOCIETE_DOMAINE = 'titi.com' ", je pense que tu confonds "contrainte" et "critère de recherche".
Pourquoi as-tu choisi de structurer ainsi ta table "conf société" : as-tu envisagé de la structurer avec une colonne STATUS, une colonne PAYS, IPADRESSE, etc... ?
Quand tu écris "j'ai les contraintes pour la table SOCIETE :
SOCIETE_DOMAINE = 'titi.com' ", je pense que tu confonds "contrainte" et "critère de recherche".
Pourquoi as-tu choisi de structurer ainsi ta table "conf société" : as-tu envisagé de la structurer avec une colonne STATUS, une colonne PAYS, IPADRESSE, etc... ?
Bonjour,
Tu peux essayer une requête de ce genre :
Par contre, ce n'est effectivement pas très souple puisque tu devras modifier la requête si tu rajoutes un type de paramètre.
Il y a sans doute des façons plus compliquées de faire qui résoudront ce problème quelque soit le nombre de colonnes à transposer, mais je ne connais pas assez MySQL pour y répondre.
Xavier
Tu peux essayer une requête de ce genre :
SELECT s.*, st.societe_conf_value as statut, ip.societe_conf_value FROM societe s LEFT OUTER JOIN societe_conf st ON st.societe_conf_id = s.societe_id AND st.societe_conf_param = 'STATUS' LEFT OUTER JOIN societe_conf ip ON ip.societe_conf_id = s.societe_id AND ip.societe_conf_param = 'IPADRESSE'
Par contre, ce n'est effectivement pas très souple puisque tu devras modifier la requête si tu rajoutes un type de paramètre.
Il y a sans doute des façons plus compliquées de faire qui résoudront ce problème quelque soit le nombre de colonnes à transposer, mais je ne connais pas assez MySQL pour y répondre.
Xavier