Requete SQL

Résolu
Bonjour,

J'aimerais, lister le contenu de 2 tables qui ont des colonnes différentes, sauf deux: "date" et "heure"

Select
Le problème d'un select sur mes deux tables c'est qu'il va bien m'afficher le contenu de mes tables mais il va aussi répéter la colonne date deux fois et la colonne heure deux fois également.

Join
Le problème avec les différents Join c'est qu'ils m'affichent pas toutes mes lignes, en effet il n'affichent que lorsque les dates, ou les heures concordent.

Resultat souhaité
Obtenir la liste du contenu de mes deux tables avec une seule colonne date, et une seule colonne heure.

Merci d'avance!

4 réponses

  1. Je n'ai pas très bien saisi ce que tu souhaites obtenir. Est-ce que le contenu des deux tables est totalement indépendant l'un de l'autre, ou est-ce qu'il existe un lien quelconque entre les deux ?

    Car dans le premier cas il s'agirait de rassembler sur une même ligne des données qui n'ont rien à voir entre elles, et j'ai alors du mal à saisir l'intérêt de la chose...
    1. Salut Themarsh

      Join entre 2 table ne va te ramener que les lignes et uniquement celle qui exisent dans la table A et B.
      Si tu veux remonter toute les lignes des 2 tables sans faire une jointure, faut passer par un UNION.

      Pour bien pouvoir t'aider. Ecrit la matrice du tableau que tu veux.
      1. Bonjour

        Join
        Le problème avec les différents Join c'est qu'ils m'affichent pas toutes mes lignes, en effet il n'affichent que lorsque les dates, ou les heures concordent.


        si ce n'est pas ça que tu veux, il ne faut pas utiliser le join parce que le join (dans sa définition) ne t'affichera que les colonnes existantes dans les tables A et B

        et si tu veux afficher que une seule fois date et heure il faudra le preciser

        exemple:
        select a, b, c, .... date.A, heure.A ... from A ....

        toute façon je n'arrive pas à te donner un exemple très explicatif,

        peux-tu nous poster les colonnes de tes deux tables ainsi que la requete utilisée ?
        1. J'ai finalement suivi la réponse de moderno31 en utilisant un UNION et ça fonctionne comme voulu:

          INSERT INTO compare_A_et_B

          SELECT 'Date','Time','A',Origin,Equipment,MsgCode,MsgType,Description,Condition FROM table_A
          UNION ALL
          SELECT 'Date','Time','B',SourceFile,nb,SfwtModule,TraceLevel,Description
          FROM table_B

          Et dans ma table compare_A_et_B j'ai des nom de colonne comme ça :
          Date, Time, Type, Origin/SourcFile, Equipmenent/nb, ...

          Merci a tous pour votre aide