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

Requêtes MySQL Discussion :

Produit cartesien


Sujet :

Requêtes MySQL

  1. #1
    Paulinho
    Invité(e)
    Par défaut Produit cartesien
    Salut!

    J'ai la requête suivante en algèbre relationnel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    π{tituloDisco} (σ(tituloDisco =tituloMusica) (discos x musicas))
    J'ai écris en MySQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT discos.tituloDisco
    FROM discos, musicas
    WHERE discos.tituloDisco = musicas.tituloMusica;
    Elle me donne ce que je veux mais j'ai lu dans un tutoriel que le produit cartesien ne contient pas de WHERE.

    Quelqu'un sait si j'ai fait correctement la requête en MySQL?

    Merci.

  2. #2
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut Re: Produit cartesien
    Cher Paulinho,

    Un produit cartésien entre A et B est l'ensemble des combinaisons entre les enregistrements de A et ceux de B, ce qui retourne un nombre très grand nombre de lignes (nbLignesA * nbLignesB).

    Un produit cartésien a généralement cette forme:
    Cependant, on peut également trouver le produit cartésien de manière implicite dans un LEFT OUTER JOIN en jouant sur le conditons de jointure (ce qui peut être source d'erreurs...)

    Dans ton cas, tu as fait un produit cartésien sur lequel tu appliques la restriction (tituloDisco =tituloMusica), ce qui revient à faire une jointure de type INNER:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *
    FROM discos
    INNER JOIN musicas
    ON (discos.tituloDisco = musicas.tituloMusica) ;
    Est-ce que cela répond à ta quetion?

  3. #3
    Paulinho
    Invité(e)
    Par défaut
    Merci beaucoup pcaboche

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/09/2008, 10h04
  2. Réponses: 7
    Dernier message: 08/01/2008, 19h43
  3. Produit cartesien hibernate3 - Postgres
    Par edenyorke dans le forum Hibernate
    Réponses: 2
    Dernier message: 26/07/2007, 14h05
  4. Produit cartesien dans une requete
    Par Fred 57220 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/04/2007, 18h42
  5. requete renvoie produit cartesien
    Par 78alex78 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 22/02/2007, 15h43

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