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 :

Gestion des Etats-Unis d'Amérique


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2011
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Gestion des Etats-Unis d'Amérique
    Bonjour,

    Afin de gérer la plus grande puissance économique mondiale tout en sauvant l'Europe j'aurais besoin de votre aide pour créer les deux requêtes MySQL schématisées ci-dessous. God bless you guys !

    Remarques : on a les 5 tables A, B, C, D et E. J'ai renommé les colonnes en col1 et col2 pour simplifier.

    1/ Supprimer tous les enregistrements de la table A tels que :
    A.col1 n'existe pas en tant que (B.col1 ou B.col2 ou C.col1 ou D.col1)

    2/ Supprimer tous les enregistrements de la table E tels que :
    E.col1 n'existe pas en tant que A.col1

    Barack

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Je pense à des choses comme cela
    1)
    Code MySQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DELETE FROM A
    WHERE EXISTS(
    SELECT B.col1 FROM B WHERE B.col1=A.col1
    UNION
    SELECT B2.col1 FROM B B2 WHERE B2.col1=A.col1
    UNION
    SELECT C.col1 FROM C WHERE C.col1=A.col1
    UNION
    SELECT D.col1 FROM D WHERE D.col1=A.col1)
    2)
    Code MySQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE FROM E
    INNER JOIN A ON E.col1=A.col1
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2011
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Je ne comprends pas à quoi sert B2 et je ne vois col2 nulle part. Du coup est-ce que ceci serait ok ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DELETE FROM A
    WHERE EXISTS(
    SELECT B.col1 FROM B WHERE B.col1=A.col1
    UNION
    SELECT B.col2 FROM B WHERE B.col2=A.col1
    UNION
    SELECT C.col1 FROM C WHERE C.col1=A.col1
    UNION
    SELECT D.col1 FROM D WHERE D.col1=A.col1)
    Si oui, est-ce que les deux premier SELECT pourraient être fusionnés ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE FROM E
    INNER JOIN A ON E.col1=A.col1
    Pour info j'ai encore rien testé.

  4. #4
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Citation Envoyé par Barack Obama Voir le message
    Je ne comprends pas à quoi sert B2 et je ne vois col2 nulle part. Du coup est-ce que ceci serait ok ?

    Pour info j'ai encore rien testé.
    Moi non plus
    Mais si j'ai aliassé B en B2 ce n'est pas pour des prunes.
    Par contre, effectivement, il faut corriger
    Code MySQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT B2.col1 FROM B B2 WHERE B2.col2=A.col1
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,


    J'ai peut-être mal compris l'énoncé mais j'aurai plutôt tendance à utiliser un NOT EXISTS dans les deux cas qu'un exists / jointure.

  6. #6
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Tu as tout à fait raison NOT EXISTS évidemment.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  7. #7
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2011
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Donc si je récapitule ça donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DELETE FROM A
    WHERE NOT EXISTS(
    SELECT B.col1 FROM B WHERE B.col1=A.col1
    UNION
    SELECT B2.col1 FROM B B2 WHERE B2.col2=A.col1
    UNION
    SELECT C.col1 FROM C WHERE C.col1=A.col1
    UNION
    SELECT D.col1 FROM D WHERE D.col1=A.col1)
    Et pour ce bloc comment on peut intégrer un NOT EXISTS ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE FROM E
    INNER JOIN A ON E.col1=A.col1

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    Comme ceci : http://sqlpro.developpez.com/cours/sqlaz/sousrequetes/

    ce serai intéressant de comprendre un minimum les solutions proposées, ca vous permetra d'être autonome plus tard

  9. #9
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2011
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    J'apprends... et si je comprends bien je devrais ne pas trop me tromper en écrivant ceci (qui revient finalement à calquer l'idée du premier bloc) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE FROM E
    WHERE NOT EXISTS(
    SELECT A.col1 FROM A WHERE A.col1=E.col1)
    Vous confirmez ?

  10. #10
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    C'est bien, en fait, tu peux probablement ici jouer avec les jointures
    Code MySQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE FROM E
    LEFT JOIN A ON E.col1=A.col1
    WHERE A.col1 IS NULL
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  11. #11
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2011
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci à vous

  12. #12
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Nedankinde.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Généralités] Gestion des ETATS personnalisables chez le client
    Par hugotor dans le forum WinDev
    Réponses: 7
    Dernier message: 26/01/2015, 13h51
  2. Réponses: 9
    Dernier message: 03/11/2010, 21h17
  3. Réponses: 0
    Dernier message: 01/06/2010, 15h28
  4. Bing a du mal à sortir des Etats-Unis
    Par Gordon Fowler dans le forum Actualités
    Réponses: 16
    Dernier message: 26/08/2009, 11h17
  5. Réponses: 7
    Dernier message: 20/08/2009, 11h12

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