IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Question sur les jointures


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 55
    Points : 27
    Points
    27
    Par défaut Question sur les jointures
    Bonjour,
    voila je suis en stage et je me pose une question sur les jointures :

    Est-ce qu'on peut faire par exemple :

    select [plusieurs champs] from uneTable, uneAutreTable inner join uneTroisiemeTable on uneAutreTable.unChamp=uneTroisiemeTable.unChamp

    Ce que je veux dire est : est ce que je peux mettre "uneTable" sans jointure?
    oula désolé pour les explications, si ce n'est pas clair dites le moi, j'essaierais de mieux expliquer

    Merci d'avance pour votre aide

  2. #2
    Membre actif
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Points : 269
    Points
    269
    Par défaut
    Oui bien sur cela produit un produit cartésien

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Vous pouvez, mais ce n'est pas "propre".
    Un produit cartésien se spécifie normalement avec l'opérateur CROSS JOIN.

    Ce qui donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT AUTRE.colonnes,
    		TROIS.colonnes,
    		UNE_TABLE.colonnes
    FROM monSchema.uneTable UNE_TABLE
    CROSS JOIN monSchema.uneAutreTable AUTRE
    INNER JOIN monSchema.uneTroisiemeTable TROIS ON AUTRE.uneColonne = TROIS.uneColonne
    N'oubliez pas de qualifier vos objets (monSchema.maTable), cela évite des erreurs et facilite le travail du moteur de bases de données.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    merci pour vos réponse mais je ne comprend pas trop votre code
    en fait ma table "uneTable" n'est pas liée aux autres et je voulais savoir si c'était quand même possible de la mettre dans le from

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Comme vous l'a dit Jero44, vous pouvez écrire ce que vous avez écrit, cela produira le produit cartésien des tables.
    Mais si vous voulez faire cela proprement, utilisez CROSS JOIN

    Dans le code que je vous ai proposé, j'ai aliasé les tables, et qualifié celles-ci avec le "nom du schéma" auxquelles elles appartiennent.

    @++

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    Excusez-moi mais je ne comprends pas bien ce que vous voulez dire par produit cartésien des tables

  7. #7
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Excusez-moi mais je ne comprends pas bien ce que vous voulez dire par produit cartésien des tables
    Détendez-vous, on est sur un forum, pas en cours

    Regardez par ici pour voir tout ce que vous pouvez réaliser comme jointures.
    Et pour aller plus loin, c'est par ici

    @++

  8. #8
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    Merci beaucoup, je vais regarder ça

Discussions similaires

  1. Question sur les jointures
    Par Nikimizi dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/06/2013, 12h22
  2. Question sur les jointures en cas d'héritage
    Par Kropernic dans le forum Développement
    Réponses: 4
    Dernier message: 22/10/2012, 15h31
  3. Question sur les jointures
    Par elraphi dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/03/2010, 13h20
  4. Question sur les jointures
    Par dimitri13 dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/04/2009, 11h28
  5. Question sur les jointures
    Par richard038 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2006, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo