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 :

EQUIVALENCE MYSQL AU WITH D'ORACLE


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut EQUIVALENCE MYSQL AU WITH D'ORACLE
    Bonjour à tous,
    Je suis tombé par hasard sur un article de ce forum mais dans la partie Oracle : (http://www.developpez.net/forums/d99...ct-imbriquees/)
    Je suis tombé sous le charme de la syntaxe avec le with pour déclarer une table temporaire, malheureusement je ne travaille pas sous oracle pour le moment.
    Quelqu'un pourrait me dire s'il existe une équivalence sous oracle de cette déclaration?
    Merci d'avance et joyeux Noël !!

  2. #2
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 812
    Points : 34 084
    Points
    34 084
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par amarecai Voir le message
    Je suis tombé sous le charme de la syntaxe avec le with pour déclarer une table temporaire,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TEMPORARY TABLE tmp
    SELECT les_colonnes
    FROM la_table
    WHERE condition ;
     
    SELECT des_colonnes
    FROM tmp
    WHERE autre_condition

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TEMPORARY TABLE tmp
    SELECT les_colonnes
    FROM la_table
    WHERE condition ;
     
    SELECT des_colonnes
    FROM tmp
    WHERE autre_condition
    Merci pour la rapidité de la réponse, par contre que cela vaut il au niveau perf, par rapport à une sous requete dans le from ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select * 
    from table1, (select id from table2, table3  where ...) as table4 
    where ....
    Ou existe t il une méthode plus performante?

    J'espere avoir été clair.
    Merci encore

  4. #4
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 812
    Points : 34 084
    Points
    34 084
    Billets dans le blog
    14
    Par défaut
    Cette syntaxe est horrible et obsolète depuis 1992 !
    Il vaut mieux faire une jointure normalisée.

    Les tables temporaires peuvent être utiles, voire nécessaires, pour :
    - mettre à jour des lignes d'une table avec une condition portant sur d'autres lignes de la même table ;
    - améliorer la performance d'une requête complexe car on peut indexer une table temporaire.

    Mais il vaut mieux s'en passer si on peut.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Cette syntaxe est horrible et obsolète depuis 1992 !
    Il vaut mieux faire une jointure normalisée.

    Les tables temporaires peuvent être utiles, voire nécessaires, pour :
    - mettre à jour des lignes d'une table avec une condition portant sur d'autres lignes de la même table ;
    - améliorer la performance d'une requête complexe car on peut indexer une table temporaire.

    Mais il vaut mieux s'en passer si on peut.

    Bien c'est que j'utilise généralement les jointures normalisées mais pas de facon systhematique. J'essayerai donc de faire un effort de ce coté.
    Merci pour la réactivité.

Discussions similaires

  1. equivalent de start with-connect by prior d'oracle en sas
    Par tmamy dans le forum Administration et Installation
    Réponses: 1
    Dernier message: 04/09/2009, 13h04
  2. Equivalent de l'Analyze d'oracle pour Access ?
    Par tomy29 dans le forum Access
    Réponses: 8
    Dernier message: 29/11/2006, 13h04
  3. Equivalent de DECLARE TRANSACTION en Oracle
    Par keiserjo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/10/2006, 18h18
  4. Réponses: 1
    Dernier message: 29/05/2006, 20h06
  5. Equivalent à TRUNC ou ROUND d'Oracle sur les Dates ?
    Par swirtel dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/05/2005, 10h45

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