Union de deux tables différentes

cs_eikichi Messages postés 9 Date d'inscription mercredi 26 mars 2003 Statut Membre Dernière intervention 9 mai 2011 - 9 mai 2011 à 14:09
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 - 20 mai 2011 à 14:08
Bonjour à tous,

Je suis coincé sur un problème de jointure de table:
Je dispose de deux tables où j'applique deux filtres différents selon les besoins de mes calculs.
T1[id, nom, chiffre_affaires, type_entreprise, nb_projets, calcul_1]
T2[id, nom, chiffre_affaires, type_entreprise, nb_projets, calcul_2]

Et je souhaiterais obtenir:

T3[id, nom, chiffre_affaires, type_entreprise, nb_projets, calcul_1, calcul_2]

sans doublons

Une jointure normale via l'id est impossible puisque ceux-ci peuvent être différents
J'ai tenté la commande UNION mais elle ne renvoit pas un résultat satisfaisant.

Merci pour votre aide

4 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
9 mai 2011 à 14:18
Si tes identifiants ne correspondent pas, je ne vois pas la logique de creation de T3 ?

Tu peux toujours faire une jointure avec le nom même si ce n'est pas terrible. La commande UNION fais l'union sur les lignes et pas sur les colonnes.

Je pense que ton problème réside plutôt sur le schéma de construction de ta bd.
0
cs_eikichi Messages postés 9 Date d'inscription mercredi 26 mars 2003 Statut Membre Dernière intervention 9 mai 2011
9 mai 2011 à 15:21
Bonjour Julien39,
En fait T1 et T2 sont des tables déjà triées en fonction d'un critère (type_entreprise=1 pour T1 et type_entreprise=2 pour T2) elles sont déjà obtenues à partir d'une table T contenant tous les identifiants, T1 et T2 ne me servent qu'à calculer des totaux différents.
Mais je crois que je pourrai m'en sortir avec du php même si ce n'est pas élégant.

Merci
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
9 mai 2011 à 16:34
Possible mais je ne vois pas comment faire le lien entre tes deux tables, désolé.

Tu devrais enlever réponse acceptée au cas ou quelqu'un serait plus inspiré que moi.

Bon courage
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
20 mai 2011 à 14:08
Bonjour,

Une jointure peut fonctionner, il suffit de la faire sur les colonnes ayant les valeurs communes :

SELECT 
    T1.nom,
    T1.chiffre_affaires,
    T1.type_entreprise,
    T1.nb_projets,
    T1.calcul_1,
    T2.calcul_2
FROM T1
INNER JOIN T2
    ON T1.Nom = T2.nom
    AND T1.chiffre_affaires = T2.chiffre_affaires
    AND T1.type_entreprise = T2.type_entreprise
    AND T1.nb_projets = T2.nb_projets
0
Rejoignez-nous