Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/12/2010, 09h55   #1
Invité de passage
 
Inscription : juin 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 10
Points : 1
Points : 1
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 !!
amarecai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 10h08   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 977
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 10 977
Points : 18 221
Points : 18 221
Envoyer un message via MSN à CinePhil
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 :
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
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 11h17   #3
Invité de passage
 
Inscription : juin 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 10
Points : 1
Points : 1
Citation:
Envoyé par CinePhil Voir le message
Code :
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 :
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
amarecai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 11h22   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 977
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 10 977
Points : 18 221
Points : 18 221
Envoyer un message via MSN à CinePhil
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.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 11h32   #5
Invité de passage
 
Inscription : juin 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 10
Points : 1
Points : 1
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é.
amarecai est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h21.


 
 
 
 
Partenaires

Hébergement Web